{"_id":"@duange/kagi-mcp","_rev":"2-26b3c0bac2a7810f8b9883f68d71d636","name":"@duange/kagi-mcp","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@duange/kagi-mcp","version":"1.0.0","keywords":["mcp","kagi","search","summarizer","claude"],"author":{"name":"admin@z23.cc"},"license":"MIT","_id":"@duange/kagi-mcp@1.0.0","maintainers":[{"name":"duange","email":"admin@z23.cc"}],"homepage":"https://github.com/z23cc/kagi-mcp#readme","bugs":{"url":"https://github.com/z23cc/kagi-mcp/issues"},"bin":{"kagi-ken-mcp":"src/index.js"},"dist":{"shasum":"db71caa70c4a851f361258a90ae3236d6fbb3695","tarball":"https://registry.npmjs.org/@duange/kagi-mcp/-/kagi-mcp-1.0.0.tgz","fileCount":8,"integrity":"sha512-jYIXoabXN0kUWJUElhAL5ThWivDv7AByKab3Gb0xlrQOssX+C7n9InjkaGmNJHQQsMifBlgBixUSoPe9XB5JMg==","signatures":[{"sig":"MEUCIQCP//w23ZGxqhzjh36KQ6wIvrP7ElKtCG5cGiSjMJFLdAIgLP5+e3z4R1+MNuP4JccBFihiOOSSQy+6UlLsOBGrPSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32972},"main":"src/index.js","type":"module","engines":{"node":">=22.0.0"},"gitHead":"ee1d6ab4962f7cf51aba06711eb6dbd59f59c2ad","scripts":{"dev":"node --inspect src/index.js","start":"node src/index.js"},"_npmUser":{"name":"duange","email":"admin@z23.cc"},"repository":{"url":"git+https://github.com/z23cc/kagi-mcp.git","type":"git"},"_npmVersion":"10.9.3","description":"Kagi MCP server using kagi-ken package","directories":{},"_nodeVersion":"22.18.0","dependencies":{"zod":"^3.22.0","uuid":"^13.0.0","kagi-ken":"github:czottmann/kagi-ken#1.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/kagi-mcp_1.0.0_1757819613339_0.9879723089261574","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-09-14T03:13:33.251Z","modified":"2026-07-25T06:33:55.969Z","1.0.0":"2025-09-14T03:13:33.513Z"},"bugs":{"url":"https://github.com/z23cc/kagi-mcp/issues"},"author":{"name":"admin@z23.cc"},"license":"MIT","homepage":"https://github.com/z23cc/kagi-mcp#readme","keywords":["mcp","kagi","search","summarizer","claude"],"repository":{"url":"git+https://github.com/z23cc/kagi-mcp.git","type":"git"},"description":"Kagi MCP server using kagi-ken package","maintainers":[{"email":"admin@z23.cc","name":"agentrystudio"}],"readme":"# kagi-ken-mcp\r\n\r\nNode.js MCP server providing Kagi search, summarization and AI assistant tools using your existing Kagi session token.\r\n\r\n\r\n## Features\r\n\r\n- **Search**: Kagi web search with multiple query support\r\n- **Summarizer**: URL/content summarization with customizable formats\r\n- **Assistant**: AI-powered conversations using Kagi's AI models\r\n\r\n## Environment Variables\r\n\r\nThe server requires different environment variables depending on which features you want to use:\r\n\r\n### For Search and Summarization only:\r\n- `KAGI_SESSION_TOKEN`: Your Kagi session token\r\n- `KAGI_SUMMARIZER_ENGINE`: Summarizer engine to use (optional, default: \"default\")\r\n\r\n### For Assistant feature (in addition to the above):\r\n- `KAGI_SEARCH_COOKIE`: Your `_kagi_search_` cookie value\r\n- `KAGI_MODEL_LIST`: Comma-separated list of available AI models (required for assistant)\r\n- `KAGI_DEFAULT_MODEL`: Default model to use (optional, uses first from list if not specified)\r\n\r\n## Setup\r\n\r\n### Get Required Tokens\r\n\r\n#### Session Token\r\n1. Visit [Kagi Settings](https://kagi.com/settings/user_details)\r\n2. Copy the **Session Link**\r\n3. Extract the `token` value\r\n4. Set `KAGI_SESSION_TOKEN` env variable\r\n\r\n#### Search Cookie (for Assistant feature)\r\n1. Open browser developer tools (F12)\r\n2. Go to Kagi.com and login\r\n3. In Application/Storage tab, find Cookies for kagi.com\r\n4. Copy the value of `_kagi_search_` cookie\r\n5. Set `KAGI_SEARCH_COOKIE` env variable\r\n\r\n#### Model Configuration (for Assistant feature)\r\n- Set `KAGI_MODEL_LIST` with comma-separated available models (e.g., \"o3-pro,claude-4-sonnet,gemini-2-5-pro\")\r\n- Optionally set `KAGI_DEFAULT_MODEL` to specify default model\r\n\r\n### Claude Desktop\r\n\r\nAdd to `claude_desktop_config.json`:\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"kagi-mcp\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@z23cc/kagi-mcp\"],\r\n      \"env\": {\r\n        \"KAGI_SESSION_TOKEN\": \"YOUR_SESSION_TOKEN_HERE\",\r\n        \"KAGI_SEARCH_COOKIE\": \"YOUR_KAGI_SEARCH_COOKIE_HERE\",\r\n        \"KAGI_MODEL_LIST\": \"o3-pro,claude-4-sonnet,gemini-2-5-pro\",\r\n        \"KAGI_DEFAULT_MODEL\": \"claude-4-sonnet\",\r\n        \"KAGI_SUMMARIZER_ENGINE\": \"default\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n#### Post-install\r\n\r\n[Disable Claude Desktop's built-in websearch](assets/claude-desktop-disable-websearch.png) so it'll use this here MCP server. And maybe add this to your \"Personal preferences\" (i.e., system prompt) in Settings:\r\n\r\n```\r\nFor web searches, use kagi-ken-mcp MCP server's `kagi_search_fetch` tool.\r\nFor summarizing a URL, use the kagi-ken-mcp MCP server's `kagi_summarizer` tool.\r\nFor AI conversations, use the kagi-ken-mcp MCP server's `kagi_assistant` tool.\r\n```\r\n\r\n### Claude Code\r\n\r\nAdd MCP server to Claude Code:\r\n\r\n```bash\r\nclaude mcp add kagi-mcp \\\r\n  --scope user \\\r\n  --env KAGI_SESSION_TOKEN=\"YOUR_SESSION_TOKEN_HERE\" \\\r\n  --env KAGI_SEARCH_COOKIE=\"YOUR_KAGI_SEARCH_COOKIE_HERE\" \\\r\n  --env KAGI_MODEL_LIST=\"o3-pro,claude-4-sonnet,gemini-2-5-pro\" \\\r\n  --env KAGI_DEFAULT_MODEL=\"claude-4-sonnet\" \\\r\n  npx -y @z23cc/kagi-mcp\r\n```\r\n\r\n#### Post-install\r\n\r\nDisable Claude Code's built-in web search (optional) by setting the permission in the relevant `.claude/settings*.json` file:\r\n\r\n```json\r\n{\r\n  \"permissions\": {\r\n    \"deny\": [\r\n      \"WebSearch\"\r\n    ],\r\n    \"allow\": [\r\n      \"mcp__kagi-mcp__kagi_search_fetch\",\r\n      \"mcp__kagi-mcp__kagi_summarizer\",\r\n      \"mcp__kagi-mcp__kagi_assistant\"\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\n\r\n## Usage: Pose query that requires use of a tool\r\n\r\ne.g. _\"Who was time's 2024 person of the year?\"_ for search, or \"summarize this video: https://www.youtube.com/watch?v=sczwaYyaevY\" for summarizer.\r\n\r\n\r\n## Tools\r\n\r\n### `kagi_search_fetch`\r\nFetch web results based on one or more queries using the Kagi Search API. Results are numbered continuously for easy reference.\r\n\r\n**Parameters:**\r\n- `queries` (array of strings): One or more search queries\r\n\r\n### `kagi_summarizer`\r\nSummarize content from URLs using the Kagi Summarizer API. Supports various document types including webpages, videos, and audio.\r\n\r\n**Parameters:**\r\n- `url` (string): URL to summarize\r\n- `summary_type` (enum): `\"summary\"` for paragraph prose or `\"takeaway\"` for bullet points (default: `\"summary\"`)\r\n- `target_language` (string, optional): Language code (e.g., `\"EN\"` for English, default: `\"EN\"`)\r\n\r\n### `kagi_assistant`\r\nInteract with Kagi's AI assistant models for conversations and queries.\r\n\r\n**Parameters:**\r\n- `message` (string): The message or question to send to the assistant\r\n- `model` (string, optional): AI model to use (default: uses configured default model)\r\n- `web_search` (boolean, optional): Enable web search integration (default: true)\r\n- `image` (string, optional): Base64 encoded image for vision models\r\n\r\n\r\n## Development\r\n\r\n### Project Structure\r\n```\r\nkagi-ken-mcp/\r\n├── src/\r\n│   ├── index.js              # Main server entry point\r\n│   ├── tools/\r\n│   │   ├── search.js         # Search tool implementation\r\n│   │   ├── summarizer.js     # Summarizer tool implementation\r\n│   │   └── assistant.js      # Assistant tool implementation\r\n│   └── utils/\r\n│       └── formatting.js     # Utility functions\r\n├── package.json\r\n└── README.md\r\n```\r\n\r\n### Installation\r\n\r\n1. **Clone the repository:**\r\n   ```bash\r\n   git clone https://github.com/z23cc/kagi-mcp.git\r\n   cd kagi-mcp\r\n   ```\r\n\r\n2. **Install dependencies:**\r\n   ```bash\r\n   npm install\r\n   ```\r\n\r\n### Running in Development Mode\r\n```bash\r\nnpm run dev\r\n```\r\n\r\n### Debugging\r\n\r\nUse the MCP Inspector to debug:\r\n```bash\r\nnpx @modelcontextprotocol/inspector node ./src/index.js\r\n```\r\n\r\n### Contributing\r\n\r\n1. Fork the repository\r\n2. Create a feature branch\r\n3. Make your changes\r\n4. Test with the MCP Inspector\r\n5. Submit a pull request\r\n\r\n\r\n## Related Projects\r\n\r\n- [czottmann/kagi-ken](https://github.com/czottmann/kagi-ken) - Unofficial session token-based Kagi client, Node\r\n- [czottmann/kagi-ken-cli](https://github.com/czottmann/kagi-ken-cli) - Unofficial Node session token-based CLI tool, Node\r\n- [Official Kagi MCP Server](https://github.com/kagisearch/kagimcp) - Python\r\n- [Model Context Protocol](https://modelcontextprotocol.io/)\r\n","readmeFilename":"README.md"}