{"_id":"@alphaca/keynut-mcp","name":"@alphaca/keynut-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@alphaca/keynut-mcp","version":"0.1.0","description":"keynut write-only MCP server — sync local .env files to keynut secret management","type":"module","bin":{"keynut-mcp":"dist/index.js"},"publishConfig":{"access":"public"},"engines":{"node":">=20"},"keywords":["mcp","modelcontextprotocol","keynut","dotenv"],"license":"MIT","scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","clean":"git clean -xdf .cache .turbo dist node_modules"},"dependencies":{"@modelcontextprotocol/server":"^2.0.0","zod":"^4.2.1"},"devDependencies":{"@types/node":"25.0.2","tsup":"^8.5.1","typescript":"^5.9.3"},"gitHead":"06964662f31ee33dba1ad15a5928d7f1671abae5","_id":"@alphaca/keynut-mcp@0.1.0","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-J3DiMSlYBrVpKsF1GF8Lk3/jfcVJsIlLFSsPfdiNar0AhO27Nmzsu7nb8aL4xTvuGmlZdxqqaWIDvixYglqdmw==","shasum":"ed1bec0df8fae23682530cb497de9f644ec05556","tarball":"https://registry.npmjs.org/@alphaca/keynut-mcp/-/keynut-mcp-0.1.0.tgz","fileCount":4,"unpackedSize":18483,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBak8eda79Ep9rqGIhTiJq+Mp0HjG7Y96eOLRHYwQbz0AiEAgukyfiF4WI8VWe4oeE7m9LWwRYO3S8dDpUCFtskSokw="}]},"_npmUser":{"name":"alphaca","email":"paca@alphaca.kr"},"directories":{},"maintainers":[{"name":"alphaca","email":"paca@alphaca.kr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/keynut-mcp_0.1.0_1789039124933_0.8793202223946477"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-10T11:18:44.650Z","0.1.0":"2026-09-10T11:18:45.086Z","modified":"2026-09-10T11:18:45.295Z"},"maintainers":[{"name":"alphaca","email":"paca@alphaca.kr"}],"description":"keynut write-only MCP server — sync local .env files to keynut secret management","keywords":["mcp","modelcontextprotocol","keynut","dotenv"],"license":"MIT","readme":"# @alphaca/keynut-mcp\n\n로컬 프로젝트의 `.env*` 파일을 keynut 항목으로 올리는 stdio MCP 서버입니다. 쓰기 전용이라 읽어 오는 도구가 없고, 파일 내용은 에이전트를 거치지 않습니다.\n\n## 설치\n\nkeynut 의 연동 화면(`/mcp`)에서 토큰을 발급한 뒤(한 번만 표시됩니다) 아래 한 줄을 실행합니다.\n\n```bash\nclaude mcp add keynut -e KEYNUT_URL=https://<host> -e KEYNUT_TOKEN=<token> -- npx -y @alphaca/keynut-mcp\n```\n\nCursor·Claude Desktop 은 설정 파일에 같은 명령을 넣습니다.\n\n```json\n{\n  \"mcpServers\": {\n    \"keynut\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alphaca/keynut-mcp\"],\n      \"env\": { \"KEYNUT_URL\": \"https://<host>\", \"KEYNUT_TOKEN\": \"<token>\" }\n    }\n  }\n}\n```\n\n## 사용\n\n프로젝트 폴더에서 \"keynut에 env 저장해줘\" 라고 말하면 됩니다. git remote 를 기준으로 저장소당 항목 하나가 만들어지고, 다시 실행하면 로컬 상태로 교체됩니다. 특정 파일만 올리려면 그 파일을 짚어 주세요 — 그때는 기존 파일을 지우지 않고 덮어쓰기만 합니다.\n\n`git rev-parse --show-toplevel` 아래 깊이 4까지 훑어 `.env` 로 시작하는 파일을 찾고, `.example`·`.sample`·`.template`·`.dist` 와 `node_modules`·`dist`·`.next` 같은 디렉터리는 건너뜁니다. 심볼릭 링크는 따라가지 않습니다. `.gitignore` 는 보지 않습니다 — env 는 원래 무시 대상이고 그게 이 도구의 존재 이유입니다.\n\n## 보안 모델\n\n파일은 이 컴퓨터에서 keynut 으로 바로 전송돼 서버에서 즉시 암호화됩니다. 에이전트에게 돌아가는 건 파일 이름과 키 개수뿐이고, 값을 읽어 오는 도구는 이 패키지에 없습니다.\n\n동기화는 사내망 또는 VPN 안에서만 됩니다. 토큰은 해시로만 저장되니 잃어버리면 회수하고 새로 발급하세요.\n\n## 환경변수\n\n| 이름           | 설명                                            |\n| -------------- | ----------------------------------------------- |\n| `KEYNUT_URL`   | keynut 호스트. 예: `https://keynut.example.com` |\n| `KEYNUT_TOKEN` | `/mcp` 에서 발급한 `knt_` 토큰                  |\n","readmeFilename":"README.md","_rev":"1-65340918bd40e3c5db713ef58bfc0918"}