openrpc mpc server

Local 2025-09-01 00:55:38 0

A Model Context Protocol (MCP) server that provides JSON-RPC functionality through OpenRPC.


A Model Context Protocol (MCP) server that provides JSON-RPC functionality through OpenRPC.

https://github.com/user-attachments/assets/3447175a-f921-4ded-8250-b611edb2fb67

Features

Tools

  • rpc_call - Call arbitrary JSON-RPC methods
  • Specify server URL, method name, and parameters
  • Returns JSON-formatted results
  • rpc_discover - Discover available JSON-RPC methods
  • Uses OpenRPC's rpc.discover specification
  • Lists all methods on a given server

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Installation

To use with Claude Desktop, add the server config:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "openrpc": {
      "command": "npx",
      "args": ["-y", "openrpc-mcp-server"]
    }
  }
}

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser.

[
  {
    "description": "Call any JSON-RPC method on a server with parameters. A user would prompt: Call method <method> on <server url> with params <params>",
    "inputSchema": {
      "properties": {
        "method": {
          "description": "JSON-RPC method name to call",
          "type": "string"
        },
        "params": {
          "description": "Stringified Parameters to pass to the method",
          "type": "string"
        },
        "server": {
          "description": "Server URL",
          "type": "string"
        }
      },
      "required": [
        "server",
        "method"
      ],
      "type": "object"
    },
    "name": "rpc_call"
  },
  {
    "description": "This uses JSON-RPC to call `rpc.discover` which is part of the OpenRPC Specification for discovery for JSON-RPC servers. A user would prompt: What JSON-RPC methods does this server have? <server url>",
    "inputSchema": {
      "properties": {
        "server": {
          "description": "Server URL",
          "type": "string"
        }
      },
      "required": [
        "server"
      ],
      "type": "object"
    },
    "name": "rpc_discover"
  }
]