{"_id":"@keenable/mcp-server","_rev":"33-c36c1e214d3b51cfffa64613cbba5aa4","name":"@keenable/mcp-server","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.1":{"name":"@keenable/mcp-server","version":"0.1.1","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.1","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"bf30e18a7bc9e822b8a5045abb57e98f80a00108","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":17,"integrity":"sha512-4+fPSNtICtuWFk2tLd9RJI6htb6sfn3SozT7TTfz0Bm3bx4onOPss4avZVRA3d04Ikkdkpk7+662t+vHxaoAKg==","signatures":[{"sig":"MEQCIEWO/FXIeSrGHm/GwwTVOaDLJaAiBeb+P0kHoT5lrRliAiAqqRrlzHT2URJLqBKskseWgAXcFeBiKPBSEZ2Iin+5uA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24832},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"86eb76efd1b8b5100b9d548bac8ef7c0b3e7ca80","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.1_1777288929509_0.04326953949125234","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@keenable/mcp-server","version":"0.1.2","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.2","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"af6cbf3c724665386c7ebed3bfac46faebd60813","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.2.tgz","fileCount":17,"integrity":"sha512-CrmsAmh5goqP5/aSI3uX+NspuBMbAANK7bREWigmQj9O4ezTkBWMwOV0VwB5tuhmnslA7m3EWi/8P1fCUdAcOg==","signatures":[{"sig":"MEUCIGLh7/2fJUzkc1YdDWTGNH3lr7beQOanur3bCABMB/vPAiEAnwRdKAh/Ws5I8bVD+N4nyMmQRzHH2DQIEzDchzI0ieE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25038},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"77894e2185c09c3f3af091727d9f1036922a0fe9","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.2_1777297824522_0.6695855917534412","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@keenable/mcp-server","version":"0.1.3","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.3","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"90f7d21e8d87d1296e89390e46867adc343f925f","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.3.tgz","fileCount":17,"integrity":"sha512-6bZpyq/ny0mj4aTW4v09K1NsU2m3OFGcbVRRYALuD0cvLKvnuYrjNWogo2gpfBNFkMilUbK8oxK4UGCtx2M42g==","signatures":[{"sig":"MEUCIGzSMrHWf7kHJs7R0PjLaAL082aqYABCFZeaYGrav9svAiEA1kz8nLNmt8nPQM9Nxsvk1V2Zb3dQBMPUxkrMRXFXyBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25038},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"0337fc17b0f46404f77d2de8d211cae8592138a3","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.3_1777299574985_0.42305276535289793","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@keenable/mcp-server","version":"0.1.4","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.4","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"b57110f225d8970d94128f23117dc4987cbebda7","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.4.tgz","fileCount":17,"integrity":"sha512-ucXLDm7/UE0Tw3GA9OekNIEF+/rvFY6WECqV2RsflQX//9mChVWouHLsyFRg2s1iTr8HVX0zsR96sRLAc+MrYA==","signatures":[{"sig":"MEYCIQCk62ifiJM8m+BftDwsGYz8GZnxoqGAsJg4EpxHHp90jgIhANSElxpGWsYq2xejjoOF0in8NGoJvcqGjHncxVUWDbtg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25038},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"ba443f138695fe68bcddc16b7935f224aa2b6393","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.4_1777299876379_0.6947113031483703","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@keenable/mcp-server","version":"0.1.5","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.5","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"ffffe81961b7c3872256b59acdf17792a757f822","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.5.tgz","fileCount":17,"integrity":"sha512-L77o766G/Jic5XGFA+U/10xhxZxrzXkdjFRf5dImMD+4GJHq14iAgxWIEv/ANRiTw2zS/vF9eUDkIx/J8CI4HA==","signatures":[{"sig":"MEUCIGdQQSsM1lsPD89R+bin3/I6H0osD6VLYUaCV6b1Pl7UAiEA+Tpn2NDvJ08T84JI3oXJfX04Me5v32kCDI+P8onNNSQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25156},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"2533c69fc08920a9dbf39267da85e3eac07e65b3","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.5_1777557626424_0.46293114081591713","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@keenable/mcp-server","version":"0.1.6","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.6","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"1067ee93f667667f42f877a31ecf61d3500ad861","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.6.tgz","fileCount":17,"integrity":"sha512-TAYyBqy2/zfnNnjorDgnZS9HWVRHYeW9ACUistQJzgGSYPBgcaSLK+YukbyMeUfaSMPuFVUGukjLNmzhkL77Ww==","signatures":[{"sig":"MEUCIB2RF8gpcAWJ0ofSEdvJtKpWxu8azwCvrMAxzDNRxBHtAiEAoVfsqIZYxcdCUU+5ebhHsTtyuhfjRFX1EeG6IHQLJb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25695},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"8fd83c93cbbd3e1400a04eb36c3b2a4e671a3d09","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.6_1778586235075_0.1475342877789685","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@keenable/mcp-server","version":"0.1.7","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.7","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"8f2833e2d43e38bc48bb285843457502dca52d71","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.7.tgz","fileCount":17,"integrity":"sha512-tFqazN9+3WaQjmeXRuZaHnogYfif51mEt583JmMGVBcUbp+I++aauTp6TWkR/s5MBp/+rAvrxz6POJ56fQW9/g==","signatures":[{"sig":"MEQCIBXswQSX5aGzFG7hLcIem7bUBO4+IMMpNuzYE4zMa79wAiBctT8W1QT10UXEdomd/TmP8XIP1NUskvVVa82uduwOwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27558},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"12c980441dd0e27a2fc5fd2e80f064dc39ed74b4","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.11.0","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.7_1778677846223_0.7036613297322423","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@keenable/mcp-server","version":"0.1.8","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.8","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"e38197fbfb33e6ef587d6fdc8093f47cfc704aff","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.8.tgz","fileCount":17,"integrity":"sha512-zdViamR9H04LR/+GBh6WulEPIF8j5o778T2CviinMzCgNm86cn7uuryHheZZqCKRlXUvJv+xJCAkDbqvDJmF/w==","signatures":[{"sig":"MEQCIEoi0qMFJcxhZQTq9rdw7xWLjMKjY/0FMfjbtUkSxZpHAiB6zO7j67StY61qKVEDR5ruazeyrdWm7I1Du8F7m/yIKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28353},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"51c34754cb4872ea2c4e149f71da5694e4982232","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.12.1","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.8_1779368812494_0.8989849643417347","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@keenable/mcp-server","version":"0.1.9","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.9","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"fb7c11b5bc91ac92ea64855d335d3ae772b2683e","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.9.tgz","fileCount":17,"integrity":"sha512-zTPjvjmrmOF4d1F4nUTQlz5QOYA1Itb9+9X+fD341q2lqH/nxO7G/e1mzioyxVcKP7tqYcvpYvKgV+z+KRGI2g==","signatures":[{"sig":"MEQCIGsCLxugnUqlFKDQ/j8KVH3+IHYcn5Gu1jDkR62/RGhZAiABKKVP+PlwCcqGgdVjRDSldTbk5VbKPuqRvoiHq3H/PQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28567},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"e9cadfecb76f2f65ee75bfb54cd2f567d4b19f13","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.12.1","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.9_1779447508817_0.03809958613638709","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@keenable/mcp-server","version":"0.1.10","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.10","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"2739c69c71c5d05f0e9a77d5a0ea8bed92adec37","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.10.tgz","fileCount":17,"integrity":"sha512-AqQ2z9VsfePevSmG7EuGBWzgipSysFCB5wR8OE6qoIkxjd0iSSjAd0haAwwUdkB+7CMclo7KQPHVQPmDeSyIQg==","signatures":[{"sig":"MEUCIQCexgnKpToSZchxuhYPfK/WFELeTiZeXrMAJRWtBrpw1gIgN5z49ZI8R2MpppS/rm8rDZnVq2g/8vZ5/vq1VaFHTmo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28113},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"9f962289459a0eeb007a1ffb6df382c812007348","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.12.1","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.10_1779712008850_0.2002375225187376","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@keenable/mcp-server","version":"0.1.11","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.11","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"57374fb2b4a4cd9d4254308df77ca0e53ecd8c88","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.11.tgz","fileCount":17,"integrity":"sha512-nFWEW1T0Elm4EPoWxOpHZuoLX7BbjcCxHwQOMgleNrfbBygLFVx4xyKBo18fSAnpHY0FsY/myCchUTZkrsYZ7A==","signatures":[{"sig":"MEYCIQD3/jApNwdEWERttve34CC6+pLZHBzyrFtkgt0p1JDCQQIhAPLVMdaaVQ1URmpd8Dkv639fWlyO1AmHMDoCGjtdEvil","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28113},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"3bce186044ed322650753a5bf99a45e63739efb8","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.12.1","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.11_1779713552040_0.4769623396225142","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@keenable/mcp-server","version":"0.1.12","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.12","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"9ade30abbcb9ddd853c73cc42da46a20762f0fd7","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.12.tgz","fileCount":17,"integrity":"sha512-m5um7oGhKddb+LO5hakq9EG38lm1kIisiV7rXCnSI8Z1Z3OUyFpFI5a2rvnlLVfnATcSbYbiIzZGlfam06VdLg==","signatures":[{"sig":"MEUCIHGjvi2nemvLZMEaEiHpNDKm9Z/rsQobvlr0RV8H0FXWAiEA95dZi0oGwayMI2qTlU+E6up/DYGQCORsL0VjBHkER3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27725},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"24bd6c80845e57601ef1066c0148027727e5802a","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.12.1","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.12_1779897087375_0.22462792169767987","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@keenable/mcp-server","version":"0.1.13","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.1.13","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"01b253eedff4cf99aa3c6567035966cbcc5c0320","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.1.13.tgz","fileCount":17,"integrity":"sha512-g5m3U1gEuoYMALg+gmOzUmxB3yIJE5ktfRyNV29RWCHLZHbAww/7bq/5WT76WHpubp2WJuOWJrFAu7UFCKfjNg==","signatures":[{"sig":"MEQCIGrOlz9lUggBGUOZlNayKpfwBxc/4Ms3H3SziYy/aW1oAiBSONPV+pK+P5w5vpIk85u7tGTx0JYx0ek2Es3MpBYo+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27955},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"3427f9207050f35a63ac6d4ee3eae198ce367479","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for Keenable AI search, fetch, and feedback APIs","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.13_1780317623655_0.8702111561091683","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@keenable/mcp-server","version":"0.2.0","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.2.0","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"},{"name":"denisbalyko","email":"denisbalyko@gmail.com"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"15a781a59077c7b094c7552821994eef4c4ffbf3","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.2.0.tgz","fileCount":15,"integrity":"sha512-JaCreoW/L0GXJeqUwhZT0QIyO+DN3Fgji4hDVou31SpJ6TwbWK+64CH/8QMTGotoPDCJk7ltgbDf+N0c1pqaww==","signatures":[{"sig":"MEUCICyoSBVsorfwnCRKo0hV47JxfQ2RW9XlVRNwQjvMSKvCAiEA8HUcaScxBppJtbljh7h3tuYvs3Qs39pMgsTumQQOcyI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23375},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"585b2ec6759d93db83db932cf3efda8e575522db","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for Keenable AI search and fetch APIs","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.0_1780748253005_0.12274320132424066","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@keenable/mcp-server","version":"0.2.1","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"author":{"name":"Keenable AI"},"license":"MIT","_id":"@keenable/mcp-server@0.2.1","maintainers":[{"name":"grigorevp","email":"p@grigorev.me"},{"name":"denisbalyko","email":"denisbalyko@gmail.com"}],"homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"bin":{"keenable-mcp-server":"build/index.js"},"dist":{"shasum":"d38b65b6a058c08b0340136a5e19650662c62ad8","tarball":"https://registry.npmjs.org/@keenable/mcp-server/-/mcp-server-0.2.1.tgz","fileCount":15,"integrity":"sha512-MmNqEJGM1FdnB3Yj3xJvLt1d/fKFdFO4t5KXr8TRnJgza9uUeaIicvN8lEEYgD3Bi2c6PN01ipynLcuqB/hNEw==","signatures":[{"sig":"MEUCIH4sBBUlWunVDUSGlESXFrpYrv97XuuX7jHDD3hsKvvqAiEAjWQOHfqju/VHXpN79tZ6YfZolgLq/m9RvmBBkdCiRAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@keenable%2fmcp-server@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23776},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"80fece1a023a8e005e9ce76f0ad35c63b9c7b4bc","scripts":{"dev":"tsc && node build/index.js","build":"tsc","start":"node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2497e8d6-8013-4a3a-bf69-5bf5f3d0b6a6"}},"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for Keenable AI search and fetch APIs","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.22.4","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.1_1781002684180_0.7265835491599264","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-11-03T14:30:39.538Z","modified":"2026-06-16T13:37:21.066Z","1.0.0":"2025-11-03T14:30:39.814Z","1.0.1":"2025-11-20T12:57:50.227Z","1.0.2":"2025-11-28T14:36:47.594Z","1.2.0":"2025-11-28T15:40:18.302Z","1.2.1":"2026-01-15T09:58:10.048Z","1.2.2":"2026-01-30T17:06:50.525Z","1.2.3":"2026-02-05T14:31:34.757Z","0.1.1":"2026-04-27T11:22:09.640Z","0.1.2":"2026-04-27T13:50:24.662Z","0.1.3":"2026-04-27T14:19:35.121Z","0.1.4":"2026-04-27T14:24:36.513Z","0.1.5":"2026-04-30T14:00:26.596Z","0.1.6":"2026-05-12T11:43:55.226Z","0.1.7":"2026-05-13T13:10:46.364Z","0.1.8":"2026-05-21T13:06:53.987Z","0.1.9":"2026-05-22T10:58:28.975Z","0.1.10":"2026-05-25T12:26:49.006Z","0.1.11":"2026-05-25T12:52:32.228Z","0.1.12":"2026-05-27T15:51:27.529Z","0.1.13":"2026-06-01T12:40:23.825Z","0.2.0":"2026-06-06T12:17:33.135Z","0.2.1":"2026-06-09T10:58:04.319Z"},"bugs":{"url":"https://github.com/keenableai/keenable-mcp-ts/issues"},"author":{"name":"Keenable AI"},"license":"MIT","homepage":"https://github.com/keenableai/keenable-mcp-ts#readme","keywords":["mcp","model-context-protocol","keenable","search","web-search","ai","llm"],"repository":{"url":"git+https://github.com/keenableai/keenable-mcp-ts.git","type":"git"},"description":"MCP server for Keenable AI search and fetch APIs","maintainers":[{"email":"ilya.bogin@keenable.ai","name":"ilya.bogin"},{"email":"ilya.gusev@keenable.ai","name":"ilyagusev"},{"email":"p@grigorev.me","name":"grigorevp"}],"readme":"# Keenable MCP Server\n\nServer URL: `https://api.keenable.ai/mcp`\n\nAuthentication: API key via the `X-API-Key` header.\n\nCreate an API key in the [console](https://keenable.ai/console).\n\n## Remote MCP (recommended)\n\nClaude Code:\n\n```bash\nclaude mcp add keenable \\\n  --transport http https://api.keenable.ai/mcp \\\n  --scope user \\\n  --header \"X-API-Key: <YOUR_API_KEY>\"\n```\n\nOther MCP clients (Claude Desktop, Cursor, Windsurf, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"keenable\": {\n      \"url\": \"https://api.keenable.ai/mcp\",\n      \"headers\": {\n        \"X-API-Key\": \"<YOUR_API_KEY>\"\n      }\n    }\n  }\n}\n```\n\n> **Note:** After adding, disable any built-in or third-party search/fetch tools (`WebSearch`, `WebFetch`, `brave_search`, `tavily_search`, etc.). Keenable tools replace them — leaving both active causes agents to pick inconsistently.\n\n---\n\n## Available Tools\n\n### search_web_pages\n\nSearch the web and return ranked results with URLs, titles, and descriptions.\n\n**Input**\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `query` | string | yes | The search query |\n| `site` | string | no | Restrict results to a specific site (e.g. `\"techcrunch.com\"`) |\n| `acquired_after` | string | no | Filter to pages acquired/indexed after this date (YYYY-MM-DD) |\n| `acquired_before` | string | no | Filter to pages acquired/indexed before this date (YYYY-MM-DD) |\n| `published_after` | string | no | Filter to pages published after this date (YYYY-MM-DD) |\n| `published_before` | string | no | Filter to pages published before this date (YYYY-MM-DD) |\n| `mode` | string | no | Search mode: `\"pro\"` (default, higher-quality results) or `\"realtime\"` (fastest) |\n\n**Output**\n\n| Field | Type | Description |\n|---|---|---|\n| `mode` | string | Search mode used (`\"realtime\"` or `\"pro\"`) |\n| `results` | array | List of search results |\n| `results[].title` | string | Page title |\n| `results[].url` | string | Page URL |\n| `results[].description` | string | Snippet / summary of the page |\n| `results[].published_at` | string | When the page was published (ISO 8601, if available) |\n| `results[].acquired_at` | string | When the page was acquired/indexed (ISO 8601, if available) |\n\n**Output example**\n\n```json\n{\n  \"query\": \"TypeScript best practices\",\n  \"mode\": \"pro\",\n  \"results\": [\n    {\n      \"title\": \"TypeScript Best Practices 2026\",\n      \"url\": \"https://example.com/ts-best-practices\",\n      \"description\": \"A comprehensive guide to modern TypeScript patterns and best practices.\",\n      \"published_at\": \"2026-01-15T10:30:00Z\",\n      \"acquired_at\": \"2026-01-16T08:12:34Z\"\n    }\n  ]\n}\n```\n\n---\n\n### fetch_page_content\n\nFetch one or more URLs and extract content as clean markdown. Only URLs from the index are supported; this is not a general web scraper.\n\n**Input**\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `urls` | string[] | yes | URLs to fetch (min 1) |\n\n**Output**\n\nOne text block per URL, each containing:\n\n| Field | Type | Description |\n|---|---|---|\n| `url` | string | The fetched URL |\n| `title` | string | Page title (if available) |\n| `content` | string | Extracted page content in markdown |\n\n**Output example**\n\n```json\n{\n  \"url\": \"https://example.com/ts-best-practices\",\n  \"title\": \"TypeScript Best Practices 2026\",\n  \"content\": \"# TypeScript Best Practices 2026\\n\\nUse strict mode, prefer interfaces over type aliases for object shapes...\"\n}\n```\n\n---\n\n## Additional setups\n\n### Stdio MCP\n\nFor agents that don't support remote MCP connections, the server is available as an npm package that runs locally over stdio.\n\n```json\n{\n  \"mcpServers\": {\n    \"keenable\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@keenable/mcp-server\"],\n      \"env\": {\n        \"KEENABLE_API_KEY\": \"<YOUR_API_KEY>\"\n      }\n    }\n  }\n}\n```\n\n### Search mode configuration\n\nYou can control the search mode via environment variables (stdio) or URL query params (remote MCP):\n\n| Setting | Env var (stdio) | Query param (remote) | Effect |\n|---|---|---|---|\n| Default mode | `KEENABLE_DEFAULT_SEARCH_MODE` | `default_search_mode` | Overrides the default when the agent doesn't specify `mode` |\n| Forced mode | `KEENABLE_FORCED_SEARCH_MODE` | `forced_search_mode` | Always uses this mode; hides the `mode` param from the tool schema |\n\nValid values: `realtime`, `pro`.\n\n**Stdio example** — always use pro mode:\n\n```json\n{\n  \"mcpServers\": {\n    \"keenable\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@keenable/mcp-server\"],\n      \"env\": {\n        \"KEENABLE_API_KEY\": \"<YOUR_API_KEY>\",\n        \"KEENABLE_FORCED_SEARCH_MODE\": \"pro\"\n      }\n    }\n  }\n}\n```\n\n**Remote MCP example** — default to pro mode (agent can still override):\n\n```\nhttps://api.keenable.ai/mcp?default_search_mode=pro\n```\n\n### OAuth\n\nThe remote MCP server at `https://api.keenable.ai/mcp` supports the MCP OAuth authorization flow, so clients can authenticate without manually passing an API key. In practice, most MCP clients have unstable OAuth implementations, so we don't currently recommend this path. Use an API key instead.\n\n## Development\n\n```bash\ngit clone https://github.com/keenableai/keenable-mcp-ts.git\ncd keenable-mcp-ts\nnpm install\nnpm run build\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}