@jpaguirrech/juanmcp
v0.3.0
Published
OpenClaw plugin: MCP client that registers remote MCP tools as agent tools. Configure your own MCP server URLs in openclaw.json.
Readme
Juan MCP (juanmcp)
OpenClaw plugin that connects to one or more MCP (Model Context Protocol) servers and registers their tools as native OpenClaw agent tools. Any OpenClaw instance with this plugin installed can consume any remote MCP server—add your own URLs in config; no hardcoded servers.
Overview
- Problem: OpenClaw has no built-in support for adding MCP servers as tool sources (unlike Cursor's
mcpServers). - Solution: This plugin acts as an MCP client: it connects to configured MCP URLs, fetches
tools/list, and registers each MCP tool with OpenClaw. When the agent calls a tool, the plugin forwards the call to the MCP server and returns the result.
Requirements
- OpenClaw gateway (2026.x)
- Node.js 18+ (for plugin runtime)
- MCP server(s) reachable via HTTP (SSE or Streamable HTTP transport)
Installation
Quick setup (installs plugin + config in one step):
npx @jpaguirrech/juanmcp
# With custom servers:
npx @jpaguirrech/juanmcp --servers servers.jsonSee docs/INSTALL.md for full options.
Manual install:
openclaw plugins install @jpaguirrech/juanmcpThen add plugin config and tools.allow to openclaw.json (see docs/INSTALL.md).
Configuration
In openclaw.json (or your main config file):
{
"plugins": {
"entries": {
"juanmcp": {
"enabled": true,
"config": {
"servers": [
{
"id": "my-calendar",
"url": "https://your-mcp-host.example.com/mcp",
"headers": {}
}
]
}
}
}
},
"tools": {
"allow": ["mcp_my_calendar_*"]
}
}- servers: Array of MCP server entries. Add any MCP server URL you want to use.
- id: Short identifier for this server (used as tool name prefix, e.g.
mcp_my_calendar_<tool_name>). Use only letters, numbers, and hyphens. - url: Base URL of the MCP server (HTTP/SSE or Streamable HTTP). Must be reachable from the OpenClaw gateway.
- bearerToken: Bearer token for
Authorization: Bearer <token>. Use$ENV_VARto read from environment (e.g.$MCP_CALENDAR_TOKEN). - headers: Optional key-value map for custom headers (merged with bearerToken if both set).
Project structure
pluggins-openClaw/
├── README.md # This file
├── openclaw.plugin.json # Plugin manifest and config schema
├── package.json
├── tsconfig.json
├── src/
│ └── index.ts # Plugin entry: register MCP client and tools
└── docs/ # Optional extra documentationPublishing to the marketplace (npm)
OpenClaw plugins are distributed via npm. There is no separate plugin marketplace; users install with:
openclaw plugins install <package-name>To make this plugin available to everyone:
Publish to npm (use a scope if you prefer, e.g.
@jpaguirrech/juanmcp):cd pluggins-openClaw npm run build npm publish --access publicFor scoped packages:
npm publish --access public(so it is public without paying for private packages).Optional: Submit or list your package in community indexes (e.g. OpenClaw docs, Awesome OpenClaw, or a catalog file at
~/.openclaw/plugins/catalog.json) so others can discover it. The official docs mention optional catalog paths:OPENCLAW_PLUGIN_CATALOG_PATHS.Install for users: Once published, anyone can run:
openclaw plugins install @jpaguirrech/juanmcpand then add their own
serversin config—no default or hardcoded MCP URLs.
Note: This plugin does not ship any default MCP URLs. Users must configure their own servers in openclaw.json.
Development
- All code, comments, and documentation are in English.
- Communication with maintainers may be in another language; the repo stays English-only.
