Node.js API Documentation MCP Server
by snyk-labs
README.md
# MCP Server for Node.js API Documentation
This project implements a Model Context Protocol (MCP) server that provides access to the official Node.js API documentation. It fetches the documentation from `nodejs.org` and exposes it through MCP tools.
## Features
* Fetches the latest Node.js API documentation.
* Provides MCP tools to query documentation for specific modules, classes, or methods.
* Offers a search tool (`node-search`) to find modules or list all available modules with their methods.
* Offers a list tool (`node-list`) to get a summary of all available modules.
* Logs activity and errors to `/tmp/mcp-server-nodejs-docs.log` using `pino`.
## Installation
1. **Clone the repository (if applicable):**
```bash
git clone <repository_url>
cd <repository_directory>
```
2. **Install dependencies:**
This project requires Node.js and npm.
```bash
npm install
```
## Usage
To start the MCP server, run the following command in your terminal:
```bash
npm run start
```
The server will initialize, fetch the documentation, create the necessary tools, and then listen for connections over standard input/output (stdio).
To enable debug logging, start the server with the `--debug` flag:
```bash
node index.js --debug
```
## Debugging
The server logs detailed information about its operations, including fetches, tool executions, and errors, to the following file:
```
/tmp/mcp-server-nodejs-docs.log
```
You can monitor this file to debug issues:
```bash
tail -f /tmp/mcp-server-nodejs-docs.log
```
### Testing with MCP Inspector
Use the built-in `debug` script:
```bash
npm run debug
```
Or directly via `npx`:
```bash
npx -y @modelcontextprotocol/inspector node index.js
```
## Connecting to MCP Clients
This server communicates over standard input/output (stdio). To connect it to MCP clients like Cursor or Qodo AI, you need to configure the client to launch the server using its command.
**Example Configuration (Conceptual):**
Most clients will have a settings area where you can add custom MCP servers. You'll typically need to provide:
1. **A Name:** e.g., "Node.js API Documentation"
2. **The Command:** The command to execute the server. Make sure to provide the **absolute path** to `node` and the `index.js` file, or ensure `node` is in the PATH environment variable accessible by the client.
```bash
# Example - replace with your actual absolute paths
/path/to/your/node /path/to/your/project/index.js
```
* **Finding Node Path:** Run `which node` in your terminal.
* **Finding Project Path:** Navigate to the project directory and run `pwd`.
Refer to your specific MCP client's documentation for the exact steps on adding a stdio-based server.
**Example using Cursor:**
1. Go to `Settings` -> `Cursor Settings` -> `MCP Servers`.
2. Click `Add Server`.
3. Enter a name (e.g., "NodeJS API Documentation").
4. In the `Command` field, enter the full command, like: `/Users/youruser/.nvm/versions/node/v20.11.1/bin/node /Users/youruser/projects/mcp-server-nodejs-docs/index.js` (replace paths with your actual paths).
5. Save the server configuration.
6. You should now be able to use the `@NodeJS API Documentation` tag (or whatever name you chose) in your chat prompts.
## Author
[Liran Tal](https://github.com/lirantal)TDQS
C2.6/5.0
Scored across 38 tools
Disambiguation5/5
Each tool targets a distinct Node.js module or the search functionality, with no overlapping purposes. The search tool is clearly differentiated for discovery.
Naming Consistency4/5
Most tools follow the pattern 'get_api_for-<module>' with hyphens. The search tool deviates with a different verb and structure, but the majority are consistent.
Tool Count4/5
38 tools cover a broad range of Node.js modules, appropriate for a comprehensive documentation server. Slightly on the high end but justified.
Completeness4/5
Covers many core modules; search tool aids navigation. Missing some niche modules but no obvious dead ends for typical use.
Maintenance
ActivityInactive
ResponsivenessNo issues