{"_id":"@nostrbook/mcp","_rev":"10-406671e79c67eb4609879e9a9105ebb7","name":"@nostrbook/mcp","dist-tags":{"latest":"0.5.3"},"versions":{"0.4.0":{"name":"@nostrbook/mcp","version":"0.4.0","_id":"@nostrbook/mcp@0.4.0","maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"bin":{"mcp":"dist/mcp"},"dist":{"shasum":"b5017bda522f7ac99a1e969b329c431945f74282","tarball":"https://registry.npmjs.org/@nostrbook/mcp/-/mcp-0.4.0.tgz","fileCount":4,"integrity":"sha512-GdHiGX4g5g5Ib7K1mBnUqwO+nVxsJHraB+0nPBJl/ZZ/EbXel162W4lP/S2AuPzeu1KNIuT5rYUlr9anEpXLfA==","signatures":[{"sig":"MEYCIQCjGXmxRUuPh6zKjWN9/BEtx82OsydOE0sulezxOT1vGwIhAK5nTSzKO6M/z//aNf+PF5+POpZN+G9G2jlmGbQeVp6m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":589647},"type":"module","gitHead":"ed4147b4d3a0b7f909ec471d73062ef2c1b67365","scripts":{"dev":"node src/stdio.ts","test":"node --test src/**/*.test.ts","build":"node scripts/build.ts","check":"tsc --noEmit","prepublishOnly":"npm i && npm run build"},"_npmUser":{"name":"alexgleason","email":"alex@alexgleason.me"},"_npmVersion":"10.9.2","description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^20.19.0","nostr-tools":"^2.14.2","@nostrify/nostrify":"npm:@jsr/nostrify__nostrify@^0.46.3","@modelcontextprotocol/sdk":"^1.12.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.0_1749320004001_0.10758683782684875","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@nostrbook/mcp","version":"0.4.1","_id":"@nostrbook/mcp@0.4.1","maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"bin":{"mcp":"dist/mcp"},"dist":{"shasum":"59d6f6a0ee1c631e64912477cb69230b9bba8a0c","tarball":"https://registry.npmjs.org/@nostrbook/mcp/-/mcp-0.4.1.tgz","fileCount":4,"integrity":"sha512-aaoIdWtYd3tNVdH+OrQem4DAViDvwgyBBOcoTVsy9hQPk2/EqRVI/VERQqArFS49SUSejusRkff+A/zliXiPxQ==","signatures":[{"sig":"MEUCIQCYmqe9Kh2nnN82YbmifaO+em6/iTuuao6n8gkbbR/CwQIgDz8AKX1CaxgZC7Yoo6gTEe7B2rGG+NiWcL6pLm0hgJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":589615},"type":"module","gitHead":"ed4147b4d3a0b7f909ec471d73062ef2c1b67365","scripts":{"dev":"node src/stdio.ts","test":"node --test src/**/*.test.ts","build":"node scripts/build.ts","check":"tsc --noEmit","prepublishOnly":"npm i && npm run build"},"_npmUser":{"name":"alexgleason","email":"alex@alexgleason.me"},"_npmVersion":"10.9.2","description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^20.19.0","nostr-tools":"^2.14.2","@nostrify/nostrify":"npm:@jsr/nostrify__nostrify@^0.46.3","@modelcontextprotocol/sdk":"^1.12.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.1_1749320182331_0.5930286549088257","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@nostrbook/mcp","version":"0.4.3","_id":"@nostrbook/mcp@0.4.3","maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"bin":{"mcp":"dist/mcp"},"dist":{"shasum":"749fd13d811f89befa9fd3fad2f5c5620fa804a8","tarball":"https://registry.npmjs.org/@nostrbook/mcp/-/mcp-0.4.3.tgz","fileCount":4,"integrity":"sha512-DU0/ymGX3IxgeOuNYJA0f6+ugj9fm0Xws3uOAiZfzPfi4CkLty4LfQQX+SXsAdz+l8KWbkpP0dl8TBjHFXAVDg==","signatures":[{"sig":"MEUCIQCUcSwyZrX/jBjs1NWFQ9+lMMDjy9n+2vUBn+w4SpGlqgIgTDmtB26TXf7+h8B59Wi0sIq/UIP+t1UsnxF2hper5X4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":589647},"type":"module","gitHead":"ed4147b4d3a0b7f909ec471d73062ef2c1b67365","scripts":{"dev":"node src/stdio.ts","test":"node --test src/**/*.test.ts","build":"node scripts/build.ts","check":"tsc --noEmit","prepublishOnly":"npm i && npm run build"},"_npmUser":{"name":"alexgleason","email":"alex@alexgleason.me"},"_npmVersion":"10.9.2","description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^20.19.0","nostr-tools":"^2.14.2","@nostrify/nostrify":"npm:@jsr/nostrify__nostrify@^0.46.3","@modelcontextprotocol/sdk":"^1.12.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.3_1749320724609_0.359575553459601","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@nostrbook/mcp","version":"0.4.4","_id":"@nostrbook/mcp@0.4.4","maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"bin":{"mcp":"dist/mcp"},"dist":{"shasum":"76871692b0a8243a867c96a3a4ca30ae2e9e9562","tarball":"https://registry.npmjs.org/@nostrbook/mcp/-/mcp-0.4.4.tgz","fileCount":4,"integrity":"sha512-X8KtajdTEF7iBuk147tlfTRWopiI0arzEEm1EInQ+RD2dT2VZxliC8Kq/1CAa0Ve3Yvx+tgMYVM5VqJI94AHZg==","signatures":[{"sig":"MEUCICE6T8td3m6tmgNi+WHM1CUmWYrMX1xAay31y9afKru3AiEA4CWSe4eZTJrwn+XTmB7YvV0yEjTCzszaYhOkU3+bq2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":589629},"type":"module","gitHead":"ed4147b4d3a0b7f909ec471d73062ef2c1b67365","scripts":{"dev":"node src/stdio.ts","test":"node --test src/**/*.test.ts","build":"node scripts/build.ts","check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexgleason","email":"alex@alexgleason.me"},"_npmVersion":"10.9.2","description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^20.19.0","nostr-tools":"^2.14.2","@nostrify/nostrify":"npm:@jsr/nostrify__nostrify@^0.46.3","@modelcontextprotocol/sdk":"^1.12.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.4_1749320786137_0.07911098723142085","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@nostrbook/mcp","version":"0.4.5","_id":"@nostrbook/mcp@0.4.5","maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"bin":{"mcp":"dist/mcp"},"dist":{"shasum":"e72ca8cd8e4840a1298a5a8731df81f06702b3b3","tarball":"https://registry.npmjs.org/@nostrbook/mcp/-/mcp-0.4.5.tgz","fileCount":4,"integrity":"sha512-EBPpJIWm8GkDfQJP4BCRombkM0ce+2bPEm45RS0dClDlOmZnJdr+gbWDyZXkUnk2B5CbdiVTasmjfRv0LNChlw==","signatures":[{"sig":"MEUCIQDBtUVmBQuZLX/wv3Z8l9Ntmmha/mSm0Wq3Vgnu+pk2JwIgDw6yP4Z1uSDKnY5b3ZfFwTRJwyzSOlBh4D1RVigVOGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":588639},"type":"module","gitHead":"90013d9ae5c74db06867aecf85c3edf6b3c725ca","scripts":{"dev":"node src/stdio.ts","test":"node --test src/**/*.test.ts","build":"node scripts/build.ts","check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexgleason","email":"alex@alexgleason.me"},"_npmVersion":"10.9.2","description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^20.19.0","nostr-tools":"^2.14.2","@nostrify/nostrify":"npm:@jsr/nostrify__nostrify@^0.46.3","@modelcontextprotocol/sdk":"^1.12.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.5_1749322564696_0.6223559345122973","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@nostrbook/mcp","version":"0.4.6","_id":"@nostrbook/mcp@0.4.6","maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"bin":{"mcp":"dist/mcp"},"dist":{"shasum":"b75268b2eee47911be462c1ce83e4f5ab61e4eb8","tarball":"https://registry.npmjs.org/@nostrbook/mcp/-/mcp-0.4.6.tgz","fileCount":4,"integrity":"sha512-OlMfS/5d9UzWFGoWk1Bctg1UxplyL8DkumrlCZjah50SbyqhsWtyekya6gUbDL4MBsSpunVKOlRJhvEMuHZChQ==","signatures":[{"sig":"MEQCIBYic+8OfrFwrsNLc1q5pTnOSeMFhO1VvgZWKPml1SbpAiA/FPQA9ZjMd/iyDzKBFPCfiN2S/+yYGIZF627LcobkjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":589225},"type":"module","gitHead":"63e342a23af35152fdc7e539a3fea41f57f70f25","scripts":{"dev":"node src/stdio.ts","test":"node --test src/**/*.test.ts","build":"node scripts/build.ts","check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexgleason","email":"alex@alexgleason.me"},"_npmVersion":"10.9.2","description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^20.19.0","nostr-tools":"^2.14.2","@nostrify/nostrify":"npm:@jsr/nostrify__nostrify@^0.46.3","@modelcontextprotocol/sdk":"^1.12.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.6_1749350693742_0.48890608492784726","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@nostrbook/mcp","version":"0.5.0","_id":"@nostrbook/mcp@0.5.0","maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"bin":{"mcp":"dist/mcp"},"dist":{"shasum":"425bf1b17b86560f4937cce7e60fca4abe303277","tarball":"https://registry.npmjs.org/@nostrbook/mcp/-/mcp-0.5.0.tgz","fileCount":4,"integrity":"sha512-LfC3dBRTh4T/rZMH3pQqGdQOpt3lxRUMQzngyWbeOgprCKy5IAiWrnyOoBcNveXRNgOcuO3ZLifa57RjKaH3+Q==","signatures":[{"sig":"MEUCIBcf1zH9fnVHhtuLcIdEujxmaZ+9XEXCTNJpzJqxlktOAiEAn9b3x4dAQ//avIEaAOeX8cyL50IDrNIX4j6bOLaW7hE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":592220},"type":"module","gitHead":"3bb157326d9ba314f7fec1fc06544cb6b8f8c3ba","scripts":{"dev":"node src/stdio.ts","test":"node --test src/**/*.test.ts","build":"node scripts/build.ts","check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexgleason","actor":{"name":"alexgleason","type":"user","email":"alex@alexgleason.me"},"email":"alex@alexgleason.me"},"_npmVersion":"10.9.2","description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^20.19.0","nostr-tools":"^2.14.2","@nostrify/nostrify":"npm:@jsr/nostrify__nostrify@^0.46.3","@modelcontextprotocol/sdk":"^1.12.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.5.0_1751850874324_0.26691847892010045","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@nostrbook/mcp","version":"0.5.1","_id":"@nostrbook/mcp@0.5.1","maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"bin":{"mcp":"dist/mcp"},"dist":{"shasum":"d799ba56732409690857528ea3dc1b87718070ea","tarball":"https://registry.npmjs.org/@nostrbook/mcp/-/mcp-0.5.1.tgz","fileCount":4,"integrity":"sha512-Urpih4e3Dc2EseI/84CKTQaB7XrqR28OrwHYq+1wWOdYE6VIWdMdT0JuNOSL7xskSylQQCP2kK2JNdLNbjXcvQ==","signatures":[{"sig":"MEUCIBqqFLg4dl/O2juy9m9OeS1ZKnPFzcp5YpocLzAq8/w1AiEA40m+aMrSBjKnHjrhUgXbJaLOEVXAXcnuMu+KdMnnu0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":592270},"type":"module","gitHead":"785e118b7b5a3bc87b3d280a0e783f4e285627c3","scripts":{"dev":"node src/stdio.ts","test":"node --test src/**/*.test.ts","build":"node scripts/build.ts","check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexgleason","actor":{"name":"alexgleason","type":"user","email":"alex@alexgleason.me"},"email":"alex@alexgleason.me"},"_npmVersion":"10.9.2","description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^20.19.0","nostr-tools":"^2.14.2","@nostrify/nostrify":"npm:@jsr/nostrify__nostrify@^0.46.3","@modelcontextprotocol/sdk":"^1.12.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.5.1_1751850953487_0.26871903456973545","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@nostrbook/mcp","version":"0.5.2","_id":"@nostrbook/mcp@0.5.2","maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"bin":{"mcp":"dist/mcp"},"dist":{"shasum":"54f3d6e007ade90f3b32175a450ca91843ace0cf","tarball":"https://registry.npmjs.org/@nostrbook/mcp/-/mcp-0.5.2.tgz","fileCount":4,"integrity":"sha512-eDp2kap0qEM6nGZ/eJBgPuM0qxeEbsZK900FdMhhg5ppe3JNmSfgBI/e+RL66/wEWqDUTDu6yLcEc9Y9tWfQ6A==","signatures":[{"sig":"MEYCIQDPWIKlmF2KR3u2UKAkTLCoQmJB/AlrN+Lj7JLmaFHu9gIhANaTgZcPKcvRxrrZfm5tbaxoghEtkQAzX5V2jaAqsdDu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":592525},"type":"module","gitHead":"56e64e129a2af2ba2b6990856369d9cc56cddd7c","scripts":{"dev":"node src/stdio.ts","test":"node --test src/**/*.test.ts","build":"node scripts/build.ts","check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexgleason","email":"alex@alexgleason.me"},"_npmVersion":"10.9.2","description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","directories":{},"_nodeVersion":"23.11.0","_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","esbuild":"^0.25.5","typescript":"^5.0.0","@types/node":"^20.19.0","nostr-tools":"^2.14.2","@nostrify/nostrify":"npm:@jsr/nostrify__nostrify@^0.46.3","@modelcontextprotocol/sdk":"^1.12.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.5.2_1753303590292_0.617479648163197","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@nostrbook/mcp","version":"0.5.3","type":"module","bin":{"mcp":"dist/mcp"},"scripts":{"test":"node --test src/**/*.test.ts","build":"node scripts/build.ts","dev":"node src/stdio.ts","check":"tsc --noEmit","prepublishOnly":"npm run build"},"devDependencies":{"@modelcontextprotocol/sdk":"^1.12.1","@types/node":"^20.19.0","esbuild":"^0.25.5","nostr-tools":"^2.14.2","typescript":"^5.0.0","zod":"^3.24.2"},"dependencies":{"@nostrify/nostrify":"^0.50.2"},"gitHead":"bbbaabb1e693c2964f120b9927fbf7067900ac0a","_id":"@nostrbook/mcp@0.5.3","description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","_nodeVersion":"24.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-l1ze+tlqHel8cvgEhpc9Sx2Dd/47H+WKNbjk/Z02Ny35dhSgSr3Hwv9ZH8rgCnQM7NanCvHPGdBvIT93e0kngA==","shasum":"0bc552b490857799077805890a1d05edb3a55fd5","tarball":"https://registry.npmjs.org/@nostrbook/mcp/-/mcp-0.5.3.tgz","fileCount":4,"unpackedSize":1557542,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGawA9+2b1UedGWi/V+nprswxKGsWK4acM0SOd09VDSRAiEAii/sQI8UAXcDuQpIU7JqrqAlQ7Tp3EYWOSe+wc0Vfhc="}]},"_npmUser":{"name":"alexgleason","email":"alex@alexgleason.me"},"directories":{},"maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.5.3_1772576363781_0.6306560226414175"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-07T18:13:23.902Z","modified":"2026-03-03T22:19:24.139Z","0.4.0":"2025-06-07T18:13:24.240Z","0.4.1":"2025-06-07T18:16:22.556Z","0.4.3":"2025-06-07T18:25:24.787Z","0.4.4":"2025-06-07T18:26:26.320Z","0.4.5":"2025-06-07T18:56:04.902Z","0.4.6":"2025-06-08T02:44:53.966Z","0.5.0":"2025-07-07T01:14:34.529Z","0.5.1":"2025-07-07T01:15:53.680Z","0.5.2":"2025-07-23T20:46:30.524Z","0.5.3":"2026-03-03T22:19:24.021Z"},"description":"This is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.","maintainers":[{"name":"alexgleason","email":"alex@alexgleason.me"}],"readme":"# Nostr MCP\n\nThis is an [MCP](https://modelcontextprotocol.io/) implementation that allows AI agents to access Nostr documentation.\n\n## Tools\n\nWhen enabled, agents will gain access to the following tools.\n\n- **read_nip(nip)**: Fetches and reads a NIP in markdown from the official Nostr NIPs repository\n- **fetch_event(identifier)**: Fetches a Nostr event using a nip19 identifier (npub, nprofile, naddr, note, nevent). For npub/nprofile, returns the user's profile (kind 0). For naddr, returns the addressable event. Special handling for kind 30817 (NIP documents) returns just the content, while other kinds return the full event JSON.\n- **read_kind(kind)**: Fetches and reads a kind doc from nostrbook.dev\n- **read_tag(tag)**: Fetches and reads a tag doc from nostrbook.dev\n- **read_protocol(doc)**: Fetches and reads a a protocol doc (\"event\", \"filter\", \"client\", \"relay\", etc) from nostrbook.dev\n- **read_nips_index()**: Fetches and reads the NIPs README to fill in any missing blanks\n- **generate_kind(range)**: Generates an unused Nostr event kind number in the specified range (regular: 1000-9999, replaceable: 10000-19999, ephemeral: 20000-29999, addressable: 30000-39999)\n\n## Installation\n\n### VSCode\n\nIn your project, create `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"nostr\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@nostrbook/mcp@latest\"]\n    }\n  }\n}\n```\n\nNow the MCP will be available to Copilot. For more information, see [_Use MCP servers in VS Code_](https://code.visualstudio.com/docs/copilot/chat/mcp-servers).\n\n### Goose\n\nTo install as a [Goose](https://block.github.io/goose/) extension:\n\n1. Run `goose configure`\n2. Choose \"Add Extension\"\n3. Choose \"Command-line Extension\"\n4. Enter \"nostr\" as the name\n5. Enter `npx -y @nostrbook/mcp@latest` as the command\n\n### Architecture\n\nNostr MCP is built with:\n\n- Node - The JavaScript/TypeScript runtime\n- [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk) - SDK for building MCPs\n- [Zod](https://zod.dev) - TypeScript-first schema validation\n- HTTP client for fetching documentation from:\n  - [Nostr NIPs GitHub repository](https://github.com/nostr-protocol/nips)\n  - [Nostrbook](https://nostrbook.dev) documentation service\n\n## License\n\n[AGPL v3.0](./LICENSE)\n","readmeFilename":"README.md"}