@llmgraph/mcp-server
A Model Context Protocol (MCP) server that exposes your LLMGraph workflow deployments as MCP tools. Connect it to Claude Desktop, Claude Code, Cursor, or any other MCP client, and your assistant can invoke the workflows you built and deployed on LLMGraph.
Each configured deployment becomes one MCP tool. The server runs over stdio and is designed to be launched with npx, so there is nothing to install permanently.
Prerequisites
- Node.js 18 or newer
- A deployed LLMGraph workflow: copy the deployment endpoint URL (shaped like
https://llmgraph.ai/api/<graph_id>/<environment>) and an API key from the LLMGraph dashboard
Configuration
All configuration is via environment variables.
Single deployment (simple path)
| Variable | Required | Description |
|---|
LLMGRAPH_ENDPOINT | yes | Full deployment endpoint URL copied from the dashboard |
LLMGRAPH_API_KEY | yes | Secret API key for the deployment |
LLMGRAPH_TOOL_NAME | no | Tool name shown to the client (default: invoke_workflow) |
LLMGRAPH_TOOL_DESCRIPTION | no | Tool description shown to the model |
LLMGRAPH_SCHEMA_MODE | no | input (default) or chat, see below |
LLMGRAPH_TIMEOUT_MS | no | Request timeout in milliseconds, positive integer (default: 180000). Applies in both single and multiple deployment modes. |
Multiple deployments (advanced path)
Set LLMGRAPH_DEPLOYMENTS to a JSON array; each entry becomes one tool. When set, it takes precedence over the single-deployment variables.
[
{
"name": "summarize_document",
"description": "Summarizes a document with the LLMGraph summarizer workflow",
"endpoint": "https://llmgraph.ai/api/abc123/production",
"apiKey": "your-api-key"
},
{
"name": "support_bot",
"description": "Asks the support assistant workflow a question",
"endpoint": "https://llmgraph.ai/api/def456/production",
"apiKey": "your-other-api-key",
"inputSchema": "chat"
}
]
Schema modes
input (default): the tool takes { "input": <object> } and the object is passed through unchanged as the POST body, so it works with any workflow input shape.
chat: for chat-style workflows. The tool takes { "user_input": <string>, "history": [{"role": "user"|"assistant", "content": <string>}] } (history optional) and sends it in the shape chat workflows expect.
Client setup
Claude Desktop
Add to claude_desktop_config.json (Settings, Developer, Edit Config):
{
"mcpServers": {
"llmgraph": {
"command": "npx",
"args": ["-y", "@llmgraph/mcp-server"],
"env": {
"LLMGRAPH_ENDPOINT": "https://llmgraph.ai/api/abc123/production",
"LLMGRAPH_API_KEY": "your-api-key",
"LLMGRAPH_TOOL_NAME": "summarize_document",
"LLMGRAPH_TOOL_DESCRIPTION": "Summarizes a document with my LLMGraph workflow"
}
}
}
}
Restart Claude Desktop and the tool appears in the tools menu.
Claude Code
claude mcp add llmgraph \
--env LLMGRAPH_ENDPOINT=https://llmgraph.ai/api/abc123/production \
--env LLMGRAPH_API_KEY=your-api-key \
-- npx -y @llmgraph/mcp-server
Cursor
Add to ~/.cursor/mcp.json (or .cursor/mcp.json in your project):
{
"mcpServers": {
"llmgraph": {
"command": "npx",
"args": ["-y", "@llmgraph/mcp-server"],
"env": {
"LLMGRAPH_ENDPOINT": "https://llmgraph.ai/api/abc123/production",
"LLMGRAPH_API_KEY": "your-api-key"
}
}
}
}
Error handling
Non-200 responses from the LLMGraph API are returned to the client as MCP tool errors carrying the API's error message:
| Status | Meaning |
|---|
| 400 | invalid request body |
| 401 | missing or invalid API key |
| 402 | subscription blocked |
| 403 | API disabled or origin not allowed |
| 404 | unknown deployment or wrong API key |
| 422 | workflow run failed |
| 429 | rate or budget limited |
| 504 | workflow timed out |
Security notes
- LLMGraph API keys are secrets for server-side use. This server sends the key only as the
x-api-key header of requests to your configured endpoint, and never writes it to stdout, stderr, or error messages.
- Client config files like
claude_desktop_config.json store the key in plain text on your machine; treat them accordingly.
Development
npm install
npm run build
npm test
License
MIT, see LICENSE.