{"_id":"@1pass/mcp","_rev":"5-42060fe08be6896371047119b64bcdfa","name":"@1pass/mcp","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@1pass/mcp","version":"0.1.0","keywords":["mcp","logi","1pass","identity","oauth","passkey","claude-code"],"author":{"name":"Dcode","email":"iyu974895@gmail.com"},"license":"MIT","_id":"@1pass/mcp@0.1.0","maintainers":[{"name":"2seo","email":"iyu974895@gmail.com"}],"homepage":"https://github.com/seunghan91/logi/tree/main/mcp","bugs":{"url":"https://github.com/seunghan91/logi/issues"},"bin":{"logi-mcp":"dist/index.js"},"dist":{"shasum":"850c7cc0bdd93ed65ad1d808af3734922122bee3","tarball":"https://registry.npmjs.org/@1pass/mcp/-/mcp-0.1.0.tgz","fileCount":14,"integrity":"sha512-lx7s2Dpb/57MOkm8GSfeCenHjVqwov0j8V8/KfGp5jPEzm/eF3kp8J/oBCgXMB9QWPo1Ax86+Cogk14gPx0Cnw==","signatures":[{"sig":"MEYCIQCu4DkrEryHZhKdtesimwr9OeRz3aFbZ1nYFalSqqAZhQIhANg13FPZ/RSJDOX8g2CDhH2iqVjQNUIGx4X849Cmy6eK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42698},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"b3281d8dd004dfd62cf8245b6d4eba7b70635450","scripts":{"dev":"tsc --watch","test":"node --test --experimental-vm-modules dist/*.test.js","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"2seo","email":"iyu974895@gmail.com"},"repository":{"url":"git+https://github.com/seunghan91/logi.git","type":"git","directory":"mcp"},"_npmVersion":"10.9.2","description":"MCP server for logi Identity Provider — end-user tools via Personal API Key","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1779834997096_0.02777997000202226","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@1pass/mcp","version":"0.1.1","keywords":["mcp","logi","1pass","identity","oauth","passkey","claude-code"],"author":{"name":"Dcode","email":"iyu974895@gmail.com"},"license":"MIT","_id":"@1pass/mcp@0.1.1","maintainers":[{"name":"2seo","email":"iyu974895@gmail.com"}],"homepage":"https://github.com/seunghan91/logi/tree/main/mcp","bugs":{"url":"https://github.com/seunghan91/logi/issues"},"bin":{"logi-mcp":"dist/index.js"},"dist":{"shasum":"94ecf52d5cf28e916711e626a3d983c69061bfe4","tarball":"https://registry.npmjs.org/@1pass/mcp/-/mcp-0.1.1.tgz","fileCount":14,"integrity":"sha512-GqSYnza2XfB8aL8TbJlQiUS2ZD9dQnj/a3aaYEPCo2vzklm9n+l23UJ0/oG8reTIJ8/R2SMzqqbpt8D6ABh+Dg==","signatures":[{"sig":"MEUCIQC0Ze8yfrzvLFdfYKSlYh2meqm7yu3bfpwlD4WA3Upv/gIgFkG7fbqari3f/0H2EfAhmb6WsKJOfpr+6oqRQzhvdBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42734},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"b3281d8dd004dfd62cf8245b6d4eba7b70635450","scripts":{"dev":"tsc --watch","test":"node --test --experimental-vm-modules dist/*.test.js","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"2seo","email":"iyu974895@gmail.com"},"repository":{"url":"git+https://github.com/seunghan91/logi.git","type":"git","directory":"mcp"},"_npmVersion":"10.9.2","description":"MCP server for logi Identity Provider — end-user tools via Personal API Key","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.1_1779835056368_0.551528655867116","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@1pass/mcp","version":"0.2.0","keywords":["mcp","logi","1pass","identity","oauth","passkey","claude-code"],"author":{"name":"Dcode","email":"iyu974895@gmail.com"},"license":"MIT","_id":"@1pass/mcp@0.2.0","maintainers":[{"name":"2seo","email":"iyu974895@gmail.com"}],"homepage":"https://github.com/seunghan91/logi/tree/main/mcp","bugs":{"url":"https://github.com/seunghan91/logi/issues"},"bin":{"logi-mcp":"dist/index.js"},"dist":{"shasum":"052a9bd1fcb47c25ea433e7223cd520b830ab36d","tarball":"https://registry.npmjs.org/@1pass/mcp/-/mcp-0.2.0.tgz","fileCount":14,"integrity":"sha512-xwpf/+1Vn6D5bILZo5jjLTC8LxwmmA0TtzPispc9dgMG7PhJP69DTHZNWlq+B5z/bXEhmUyuAyC8komad7PejA==","signatures":[{"sig":"MEUCICw/jo0ixvD9QNPOM085u6EGC+wR4BNSsMy2N6b7UkdiAiEArMqKu2r8qtLbTG8Nse8cef/cQMJQ8StidKt7g3ITCps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50854},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"a083cd435f14fc76e54c17047e9feb4debbf890c","scripts":{"dev":"tsc --watch","test":"node --test --experimental-vm-modules dist/*.test.js","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"2seo","email":"iyu974895@gmail.com"},"repository":{"url":"git+https://github.com/seunghan91/logi.git","type":"git","directory":"mcp"},"_npmVersion":"10.9.2","description":"MCP server for logi Identity Provider — end-user tools via Personal API Key","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1779952166890_0.9508388208156275","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@1pass/mcp","version":"0.2.1","keywords":["mcp","logi","1pass","identity","oauth","passkey","claude-code"],"author":{"name":"Dcode","email":"support@1pass.dev"},"license":"MIT","_id":"@1pass/mcp@0.2.1","maintainers":[{"name":"2seo","email":"iyu974895@gmail.com"}],"homepage":"https://docs.1pass.dev","bugs":{"url":"https://github.com/dcode-co/logi-plugins/issues"},"bin":{"logi-mcp":"dist/index.js"},"dist":{"shasum":"fc2f6169cb8c8b2c56f3ffafae20b4ddf0711895","tarball":"https://registry.npmjs.org/@1pass/mcp/-/mcp-0.2.1.tgz","fileCount":14,"integrity":"sha512-OcDjYAttCVsL4nNPyfMBKG21LCCR1AX5coCM0BzWcxleF+ZFY+HsDWqCjAa8oZzj0MTt24qcBP7YVKmFDTfuZw==","signatures":[{"sig":"MEYCIQDv64fTTTLySx1PHleDPO7oslFJHs8HzYIH1oExAKp7aQIhAIuRCaDLoorCjl+gTwHi2zwGKm1AdbwN+FfVO4q9phd1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50854},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"181213333c404b6c301ef20aeb83dc36ea0bb134","mcpName":"io.github.dcode-co/logi","scripts":{"dev":"tsc --watch","test":"node --test --experimental-vm-modules dist/*.test.js","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"2seo","email":"iyu974895@gmail.com"},"repository":{"url":"git+https://github.com/dcode-co/logi-plugins.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP server for logi Identity Provider — end-user tools via Personal API Key","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.1_1786109690125_0.10840127220845308","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@1pass/mcp","mcpName":"dev.1pass/logi","version":"0.2.2","description":"MCP server for logi Identity Provider — end-user tools via Personal API Key","type":"module","bin":{"logi-mcp":"dist/index.js"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","dev":"tsc --watch","test":"node --test --experimental-vm-modules dist/*.test.js","prepublishOnly":"npm run build"},"engines":{"node":">=20"},"keywords":["mcp","logi","1pass","identity","oauth","passkey","claude-code"],"author":{"name":"Dcode","email":"support@1pass.dev"},"license":"MIT","homepage":"https://docs.1pass.dev","bugs":{"url":"https://github.com/dcode-co/logi-plugins/issues"},"repository":{"type":"git","url":"git+https://github.com/dcode-co/logi-plugins.git"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","zod":"^3.23.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.6.0"},"_id":"@1pass/mcp@0.2.2","gitHead":"34d16443228cb7eb2503afa872208409badf0a2f","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-DJ4145yyME5why4fExKgpWlMFFVxo45l351iCdgBJU3Ig12DlJA9e2GLF4FnXrAw5IVx3e1/Sr2P6aWvdTvGZg==","shasum":"dea51a2bff40e6cbe4db1d3011dd87b166f97a59","tarball":"https://registry.npmjs.org/@1pass/mcp/-/mcp-0.2.2.tgz","fileCount":14,"unpackedSize":50845,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHA8vuOLLirEOzCV7ceg8LmaNILukN1A+es6HJ9FLzuiAiEAxveaQWOkmpA3L4ZR3T+cUvjnof6NLIjBYua0mjNIw/8="}]},"_npmUser":{"name":"2seo","email":"iyu974895@gmail.com"},"directories":{},"maintainers":[{"name":"2seo","email":"iyu974895@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.2.2_1786113115499_0.42086077135595557"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-26T22:36:36.939Z","modified":"2026-08-07T14:31:55.816Z","0.1.0":"2026-05-26T22:36:37.226Z","0.1.1":"2026-05-26T22:37:36.519Z","0.2.0":"2026-05-28T07:09:27.034Z","0.2.1":"2026-08-07T13:34:50.258Z","0.2.2":"2026-08-07T14:31:55.637Z"},"bugs":{"url":"https://github.com/dcode-co/logi-plugins/issues"},"author":{"name":"Dcode","email":"support@1pass.dev"},"license":"MIT","homepage":"https://docs.1pass.dev","keywords":["mcp","logi","1pass","identity","oauth","passkey","claude-code"],"repository":{"type":"git","url":"git+https://github.com/dcode-co/logi-plugins.git"},"description":"MCP server for logi Identity Provider — end-user tools via Personal API Key","maintainers":[{"name":"2seo","email":"iyu974895@gmail.com"}],"readme":"# @1pass/mcp\n\n[logi](https://start.1pass.dev) (1pass) Identity Provider 의 end-user MCP 서버.\nClaude Code / Claude Desktop 에서 자연어로 logi 계정과 OAuth 앱(RP)을 관리합니다.\n\n> \"내 logi 로그인 이력 보여줘\", \"내 RP에 redirect_uri 추가해줘\" 같은 자연어가\n> 바로 API 호출로 매핑됩니다.\n\n---\n\n## 설치\n\n### 방법 1: npx (권장)\n\n`~/.claude.json` (또는 Claude Desktop config) 에 다음을 추가:\n\n```json\n{\n  \"mcpServers\": {\n    \"logi\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"-p\", \"@1pass/mcp\", \"logi-mcp\"],\n      \"env\": {\n        \"LOGI_API_URL\": \"https://start.1pass.dev\",\n        \"LOGI_API_KEY\": \"logi_pak_...\"\n      }\n    }\n  }\n}\n```\n\n### 방법 2: 전역 설치\n\n```bash\nnpm i -g @1pass/mcp\n```\n\n그리고 `~/.claude.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"logi\": {\n      \"command\": \"logi-mcp\",\n      \"env\": {\n        \"LOGI_API_URL\": \"https://start.1pass.dev\",\n        \"LOGI_API_KEY\": \"logi_pak_...\"\n      }\n    }\n  }\n}\n```\n\n### 방법 3: 저장소에서 직접 (개발용)\n\n```bash\ncd mcp && npm install && npm run build\n```\n\n```json\n{\n  \"mcpServers\": {\n    \"logi\": {\n      \"command\": \"node\",\n      \"args\": [\"~/toy/logi/mcp/dist/index.js\"],\n      \"env\": {\n        \"LOGI_API_URL\": \"http://localhost:3000\",\n        \"LOGI_API_KEY\": \"logi_pak_...\"\n      }\n    }\n  }\n}\n```\n\n---\n\n## Personal API Key (PAK) 발급\n\n1. 브라우저에서 <https://start.1pass.dev/developer/api_keys> 접속\n2. logi SSO 로 로그인\n3. \"새 키 발급\" (Create new key) → 이름·scope 선택 (예: `claude-code-mcp-apps-manage`)\n4. 최근 OTP step-up 통과\n5. **reveal 페이지에서 plaintext 키를 한 번만 표시** — 즉시 복사해서 안전한 곳에 저장\n\n> 키 이름에 사용 맥락 + scope 힌트를 포함하면 회전·감사가 쉬워집니다.\n> 예: `claude-code-mcp-apps-manage`, `cli-readonly`, `ci-deploy`.\n\n---\n\n## 제공 도구 (12)\n\n| Tool | 용도 | 필요 scope |\n|------|------|-----------|\n| `logi_whoami` | PAK 연결 확인 (현재는 `/api/v1/applications` 호출로 검증 — 서버 응답 + 조회 가능한 앱 수만 반환) | `apps:read` or `apps:manage` (현 구현 기준) |\n| `logi_list_login_history` | 최근 로그인 이력 (N≤100) | `login_history:read` |\n| `logi_delete_login_log` | 로그인 로그 soft-delete (90일 복구 가능) | `login_history:write` |\n| `logi_list_trashed_logs` | 휴지통 조회 | `login_history:write` |\n| `logi_restore_login_log` | 휴지통에서 복구 (idempotent) | `login_history:write` |\n| `logi_list_passkeys` | 등록된 Passkey 목록 | `passkeys:read` |\n| `logi_delete_passkey` | Passkey 삭제 (irreversible) | `passkeys:manage` |\n| `logi_list_connected_apps` | 내가 권한 부여한 third-party OAuth 앱 + 공유 claim 목록 | `profile:read` |\n| `logi_list_apps` | 내가 소유한 RP(OAuth app) 목록 | `apps:read` or `apps:manage` |\n| `logi_show_app` | RP 상세 (redirect_uris, scopes, status 등) | `apps:read` or `apps:manage` |\n| `logi_add_redirect_uri` | RP 에 redirect_uri 추가 (idempotent + audit) | `apps:manage` |\n| `logi_remove_redirect_uri` | RP 에서 redirect_uri 제거 (마지막 1개 차단) | `apps:manage` |\n\n`logi_list_connected_apps` 는 end-user 권한 부여 목록(`/api/v1/me/connected_apps`,\n`profile:read` 필요)이고 `logi_list_apps` 는 RP 소유자 관점의 앱 목록\n(`/api/v1/applications`) 입니다 — 헷갈리지 마세요.\n\n> `logi_whoami` 는 현재 별도 식별 엔드포인트가 없어 `/api/v1/applications` 를\n> ping 용으로 호출하기 때문에 `apps:read` 또는 `apps:manage` scope 가 필요합니다.\n> 향후 서버에 `/api/v1/me` 가 들어오면 어떤 scope 로도 동작하도록 바뀔 예정입니다.\n\n---\n\n## 보안\n\n### PAK 저장\n\n- `~/.claude.json` 은 **반드시 `chmod 600`** (편집 전/후 모두 확인)\n  ```bash\n  stat -f \"%Sp %N\" ~/.claude.json\n  # -rw-------  /Users/<you>/.claude.json\n  ```\n- `.gitignore` 에 `.claude.json` 포함 확인 — 절대 git 에 들어가면 안 됨\n- 가능하면 OS Keychain 에 저장하고 셸 wrapper 로 inject 하는 것이 더 안전\n\n### 회전 (rotation)\n\n- **90일마다 회전** (개인 캘린더에 reminder)\n- 회전 = 새 키 발급 → `~/.claude.json` 교체 → 구 키 revoke\n- 스코프 축소가 필요하면 in-place 수정 대신 **새 키 발급 후 구 키 revoke**\n\n### 즉시 revoke 트리거\n\n- 키가 git/chat/문서/screenshot 에 노출된 정황\n- 디바이스 폐기 직전 (wipe 전에 revoke)\n- 의심스러운 `developer_audit_logs.api_key_created` 행 발견\n- 사용하지 않는 키 (분기별 점검)\n\n### 전송\n\nPAK 는 `Authorization: Bearer logi_pak_...` 헤더로만 전송됩니다.\nHTTPS 강제, URL/쿼리스트링에 절대 포함하지 않습니다.\n\n---\n\n## Troubleshooting\n\n| 증상 | 원인 | 처치 |\n|------|------|------|\n| `logi API error 401` | 잘못된/만료된/revoke 된 PAK | <https://start.1pass.dev/developer/api_keys> 에서 신규 발급 |\n| `logi API error 403 (scope_missing)` | 키 발급 시 해당 scope 미선택 | 더 넓은 scope 로 새 키 발급 (in-place 수정 불가) |\n| `logi API error 404` | `LOGI_API_URL` 잘못됨 | `https://start.1pass.dev` 확인 (apex 1pass.dev 는 301 redirect) |\n| `ENOTFOUND start.1pass.dev` | DNS / 오프라인 | 네트워크 확인, 캐시 flush |\n| Claude 가 logi tool 을 인식 못 함 | MCP config 미적용 | Claude 재시작, `~/.claude.json` 문법 검증 (`jq . ~/.claude.json`) |\n| `logi_add_redirect_uri` 가 reject | URI shape / sandbox host / app_link host mismatch | 서버 에러 메시지의 reason 확인 후 정정 |\n\n---\n\n## 개발 (contributors)\n\n```bash\nnpm install\nnpm run build       # tsc\nnpm run dev         # tsc --watch\n\nLOGI_API_KEY=logi_pak_... node dist/index.js  # stdio MCP server\n```\n\npublish 전 점검:\n\n```bash\n./scripts/prepublish-check.sh\n```\n\n---\n\n## 라이선스\n\nMIT © [Dcode](https://github.com/seunghan91)\n","readmeFilename":"README.md"}