NeuroLink Docs MCP Server
The NeuroLink Docs MCP Server makes the entire NeuroLink documentation (360+ pages across 27 sections) queryable by AI assistants through the Model Context Protocol. Instead of copy-pasting docs into your prompt, your AI assistant can search, browse, and read NeuroLink documentation on demand.
What it provides:
- 6 tools — full-text search, page retrieval, section browsing, API reference lookup, example search, and changelog
- Pre-built search index — generated at build time with MiniSearch for instant results
- Dual transport — stdio for local use, HTTP for remote/hosted deployments
- Zero configuration — runs via
npxwith no API keys required
Quick Start
Add the NeuroLink docs server to your AI development tool:
- Claude Desktop
- Cursor
- Claude Code
- VS Code
- Windsurf
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"neurolink-docs": {
"command": "npx",
"args": ["-y", "@juspay/neurolink", "docs"]
}
}
}
Restart Claude Desktop after saving.
Create or edit .cursor/mcp.json in your project root:
{
"mcpServers": {
"neurolink-docs": {
"command": "npx",
"args": ["-y", "@juspay/neurolink", "docs"]
}
}
}
Cursor will detect the config automatically.
Run this command in your terminal:
claude mcp add neurolink-docs -- npx -y @juspay/neurolink docs
The server will be available in your next Claude Code session.
Create or edit .vscode/mcp.json in your project root:
{
"servers": {
"neurolink-docs": {
"command": "npx",
"args": ["-y", "@juspay/neurolink", "docs"]
}
}
}
VS Code will detect the MCP server on next reload.
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"neurolink-docs": {
"command": "npx",
"args": ["-y", "@juspay/neurolink", "docs"]
}
}
}
Restart Windsurf after saving.
All clients use the same npx -y @juspay/neurolink docs command. The only difference is the config file location and JSON key format (mcpServers vs servers).
Available Tools
The docs server exposes 6 tools to your AI assistant:
| Tool | Description | Parameters |
|---|---|---|
search_docs | Full-text search across all documentation | query (required), limit?, section? |
get_page | Get the full content of a specific doc page | path (required) |
list_sections | List all documentation sections and their pages | none |
get_api_reference | Get SDK API reference, optionally filtered by method | method? |
get_examples | Get code examples by topic or provider | topic?, provider? |
get_changelog | Get recent changelog entries | limit? |
Tool Examples
search_docs
Search across all NeuroLink documentation with optional section filtering.
Request:
{
"query": "RAG pipeline",
"limit": 3,
"section": "features"
}
Response:
{
"query": "RAG pipeline",
"resultCount": 3,
"results": [
{
"title": "RAG (Retrieval-Augmented Generation)",
"description": "Complete RAG pipeline with 9 chunking strategies...",
"section": "features",
"path": "features/rag",
"url": "https://docs.neurolink.ink/docs/features/rag",
"score": 12.45
},
{
"title": "File Processors",
"description": "Process 50+ file types for AI consumption...",
"section": "features",
"path": "features/file-processors",
"url": "https://docs.neurolink.ink/docs/features/file-processors",
"score": 8.21
}
]
}
get_page
Retrieve the full content of a specific documentation page by its path.
Request:
{
"path": "getting-started/installation"
}
Response:
{
"title": "Installation",
"description": "Install NeuroLink via npm, yarn, or pnpm...",
"section": "getting-started",
"path": "getting-started/installation",
"url": "https://docs.neurolink.ink/docs/getting-started/installation",
"content": "# Installation\n\nInstall NeuroLink using your preferred package manager..."
}
list_sections
List all documentation sections and the pages they contain.
Request: (no parameters)
Response:
{
"totalSections": 27,
"totalPages": 361,
"sections": [
{
"name": "getting-started",
"pageCount": 15,
"pages": [
{ "title": "Getting Started", "path": "getting-started/index" },
{ "title": "Installation", "path": "getting-started/installation" }
]
},
{
"name": "sdk",
"pageCount": 6,
"pages": [
{ "title": "SDK Overview", "path": "sdk/index" },
{ "title": "API Reference", "path": "sdk/api-reference" }
]
}
]
}
get_api_reference
Get SDK API reference documentation. Pass a method name to filter results.
Request:
{
"method": "generate"
}
Response:
{
"query": "generate",
"results": [
{
"title": "API Reference",
"path": "sdk/api-reference",
"url": "https://docs.neurolink.ink/docs/sdk/api-reference"
}
]
}
get_examples
Find code examples by topic or AI provider.
Request:
{
"topic": "streaming",
"provider": "anthropic"
}
Response:
{
"query": "streaming anthropic",
"results": [
{
"title": "Streaming with Retry",
"description": "Implement streaming with automatic retry...",
"section": "cookbook",
"path": "cookbook/streaming-with-retry",
"url": "https://docs.neurolink.ink/docs/cookbook/streaming-with-retry"
}
]
}
get_changelog
Get recent NeuroLink release notes and changelog entries.
Request:
{
"limit": 3
}
Response:
{
"entries": [
{
"title": "Changelog",
"description": "NeuroLink release history...",
"path": "community/changelog",
"url": "https://docs.neurolink.ink/docs/community/changelog",
"content": "## 9.12.0\n\n### Features\n- MCP CLI gap fix..."
}
]
}
HTTP Transport
For remote or hosted deployments, start the server with HTTP transport:
# Start HTTP server on default port 3001
neurolink docs --transport http
# Start on a custom port
neurolink docs --transport http --port 8080
The HTTP server exposes:
POST /mcp— MCP endpoint (Streamable HTTP transport)GET /health— Health check endpoint
Configure your MCP client to connect via HTTP:
{
"mcpServers": {
"neurolink-docs": {
"transport": "http",
"url": "https://your-server.com/mcp"
}
}
}
The hosted version is available at https://docs.neurolink.ink/mcp — no local installation required.
Programmatic Usage
You can also add the docs server programmatically via the NeuroLink SDK:
import { NeuroLink } from "@juspay/neurolink";
const neurolink = new NeuroLink();
// Add the docs server as an external MCP server
await neurolink.addExternalMCPServer("neurolink-docs", {
command: "npx",
args: ["-y", "@juspay/neurolink", "docs"],
transport: "stdio",
});
// Now the AI can use docs tools during generation
const result = await neurolink.generate({
prompt: "How do I set up RAG with NeuroLink? Search the docs first.",
});
Or connect to the HTTP transport:
await neurolink.addExternalMCPServer("neurolink-docs", {
transport: "http",
url: "https://docs.neurolink.ink/mcp",
});
Building the Search Index
The search index is generated automatically during the docs site build:
cd docs-site && pnpm build
This runs the docusaurus-plugin-search-index plugin which:
- Scans all
docs/**/*.mdanddocs/**/*.mdxfiles - Parses frontmatter (title, description, tags)
- Extracts and indexes content with MiniSearch
- Writes
static/search-index.json
The index is bundled with the npm package, so end users don't need to build it themselves.
Troubleshooting
"search-index.json not found"
The search index hasn't been built yet. Run:
cd docs-site && pnpm build
This generates docs-site/static/search-index.json which the MCP server needs to function.
Outdated search results
The search index is generated at build time. To get the latest docs:
cd docs-site && pnpm build
If using the npm package, update to the latest version:
npm update @juspay/neurolink
Server not appearing in Claude Desktop / Cursor
- Verify the config file is in the correct location (see Quick Start above)
- Ensure the JSON is valid — a trailing comma or missing bracket will silently fail
- Restart the application after saving the config
- Check that
npxis available in your PATH
Connection timeout
If the server takes too long to start:
- The first run downloads
@juspay/neurolinkvia npx — this may take 10-30 seconds - Subsequent runs use the npm cache and start faster
- For faster startup, install globally:
npm install -g @juspay/neurolink
Tools not returning results
If search returns empty results:
- Verify the search index exists and is not empty
- Try broader search terms — the index uses fuzzy matching with prefix search
- Use
list_sectionsfirst to see available sections, then filter withsectionparameter