Developer Portal
MCP Specification 2024-11-05

Model Context Protocol (MCP) Guide

Expose Zynocode Labs computational calculators, formatters, and utilities directly to Claude Desktop, Cursor, VS Code, and autonomous AI agents.

Server-Side Execution Notice

While interactive browser tools run entirely on client machines via WebAssembly and Canvas, MCP tool calls are dispatched and executed on Zynocode Labs backend servers. Input parameters sent via JSON-RPC 2.0 (tools/call) are processed by our Universal Tool Engine over TLS-encrypted connections.

Server Capabilities & Specifications

Protocol Version

2024-11-05 (JSON-RPC 2.0)

Server Identifier

zynocode-labs (v1.0.0)

Transports

Stdio (CLI) & Streamable HTTP (Remote)

Catalog Manifest

GET /api/v1/mcp/manifest

AI Client Setup

Configure your AI assistant to launch the Zynocode MCP server via stdio using npx.

1. Claude Desktop

claude_desktop_config.json

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "zynocode": {
      "command": "npx",
      "args": ["-y", "zynocode", "mcp-serve"],
      "env": {
        "ZYNOCODE_API_KEY": "zk_live_your_api_key_here"
      }
    }
  }
}

2. Cursor IDE

~/.cursor/mcp.json

Open Cursor Settings > Features > MCP, or edit the JSON file directly:

{
  "mcpServers": {
    "zynocode": {
      "command": "npx",
      "args": ["-y", "zynocode", "mcp-serve"],
      "env": {
        "ZYNOCODE_API_KEY": "zk_live_your_api_key_here"
      }
    }
  }
}

3. VS Code

.vscode/mcp.json
{
  "servers": {
    "zynocode": {
      "command": "npx",
      "args": ["-y", "zynocode", "mcp-serve"],
      "env": {
        "ZYNOCODE_API_KEY": "zk_live_your_api_key_here"
      }
    }
  }
}

Exposed Tools Catalog

The server translates all tool slugs into standard MCP identifier names (hyphens converted to underscores). Every tool exposes a typed input schema accepting a params object.

MCP Tool NameSlugCategoryRequired Parameters
word_counterword-counterwritingtext (string)
json_formatterjson-formatterdeveloperjsonText (string), indent? (number)
base64_encoderbase64-encoderdevelopertext (string), mode ("encode" | "decode")
emi_calculatoremi-calculatorfinanceprincipal (num), rate (num), tenureYears (num)
gst_calculatorgst-calculatorfinanceamount (num), rate (num), type ("exclusive" | "inclusive")

JSON-RPC 2.0 Message Wireformat

The MCP server communicates using standard newline-delimited JSON-RPC 2.0 packets over stdio.

Handshake Request (`initialize`)

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05"}}

Handshake Response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "protocolVersion": "2024-11-05",
    "capabilities": {
      "tools": { "listChanged": false }
    },
    "serverInfo": {
      "name": "zynocode-labs",
      "version": "1.0.0"
    }
  }
}

Tool Execution (`tools/call`)

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "word_counter",
    "arguments": {
      "params": {
        "text": "The quick brown fox jumps over the lazy dog."
      }
    }
  }
}

Tool Execution Response

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\n  \"success\": true,\n  \"result\": {\n    \"words\": 9,\n    \"characters\": 44,\n    \"sentences\": 1,\n    \"paragraphs\": 1\n  }\n}"
      }
    ]
  }
}
← REST API ReferenceWebhooks Integration