MCPico
Proxies the GitHub MCP server, bundling GitHub-related tools into grouped subcommands for streamlined access and reduced context overhead.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCPicowhat commands are available?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCPico
MCP proxy that bundles flat tool lists into hierarchical subcommand groups.
MCPico (MCP + "ico" = tiny) wraps upstream MCP servers, grouping their tools into discoverable subcommand-based tools. One tool per group, not one per tool. The help subcommand auto-generates rich documentation from upstream schemas.
The Problem
MCP servers expose tools as a flat list. Every tool costs context tokens. A filesystem server exposes 14+ separate tools — the model sees all of them, all the time, even when it only needs one.
Some clients add "tool search" as a workaround. But searching requires the model to proactively look for tools it doesn't know exist. No structural signal about which tools relate to each other.
Related MCP server: mcp-compressor
MCPico's Solution
Group related tools under a single entry point. The model sees 9 groups instead of 14 tools. Discovery is built-in via help:
→ filesystem tools:
14 tools → 9 groups: read, write, edit, create, list, directory, move, search, getFeatures
Tool bundling — Groups tools by prefix (configurable separator), collapsing flat tool lists
Auto-generated help — Each group's
helpsubcommand is built from upstream tool schemasMulti-server aggregation — Proxy multiple upstream MCP servers through one interface
Dual transport — Supports both stdio and Streamable HTTP (SSE) upstream servers
Configurable timeouts — Per-server connection timeout with sensible default (30s)
Resource & prompt passthrough — Namespaced to avoid collisions across servers
Usage
Install
npm install -g mcplicoConfigure
Create mcplico.json:
{
"servers": [
{
"name": "filesystem",
"transport": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"]
}
}
]
}Run
mcplicoConnect your MCP client
Add MCPico as a server in your MCP client config:
{
"mcpServers": {
"mcplico": {
"command": "mcplico",
"args": ["--config", "/path/to/mcplico.json"]
}
}
}How it works
Connect to upstream MCP servers
Discover their tools (
tools/list)Group tools by prefix (configurable separator, default
_)filesystem_read_file,filesystem_write_file→ groupfilesystem
Register each group as a single MCP tool with a
commandstring argumentForward tool calls by parsing
<subcommand> {"key":"value"}and proxying to upstreamGenerate help dynamically from original tool schemas
Command format
<subcommand> {"arg1":"val1","arg2":"val2"}Examples:
help— see all subcommands and their parametersread_file {"path":"/tmp/hello.txt"}— call a specific toolwrite_file {"path":"/tmp/out.txt","content":"hello"}— with arguments
Multi-server aggregation
MCPico can proxy multiple upstream servers simultaneously:
{
"servers": [
{
"name": "filesystem",
"transport": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
}
},
{
"name": "github",
"transport": {
"type": "sse",
"url": "https://mcp-github.example.com/mcp"
}
}
]
}Groups from different servers are merged if they share a prefix. Otherwise each server's tools appear as separate groups.
Configuration
Field | Type | Default | Description |
|
| required | Upstream MCP servers to proxy |
|
|
| Separator for prefix-based tool grouping |
|
|
| Explicit group overrides ( |
ServerConfig
Field | Type | Required | Description |
|
| yes | Friendly name / group namespace |
|
| yes | How to connect to the upstream server |
|
| no | Connection timeout in ms (default: 30000) |
TransportConfig (stdio)
Field | Type | Required | Description |
|
| yes | Transport type |
|
| yes | Executable to spawn |
|
| no | Command-line arguments |
|
| no | Environment variables |
|
| no | Working directory |
TransportConfig (SSE / Streamable HTTP)
Field | Type | Required | Description |
|
| yes | Transport type |
|
| yes | Full URL to MCP Streamable HTTP endpoint |
Development
npm install
npm run build # TypeScript compilation
npm test # Run tests (77 tests, vitest)
npm run dev # Run directly with tsxLicense
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Search, vet & assemble MCP servers from your agent: verified tools, risk labels, and trust scores.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceActs as a proxy for multiple MCP servers, reducing context window usage from 15,000+ tokens to ~500 tokens by dynamically loading servers on-demand and exposing only 3 tools instead of all tool definitions.5GPL 3.0
- AlicenseNot gradedqualityAmaintenanceA proxy server that wraps existing MCP servers to significantly reduce token consumption by compressing tool descriptions into a two-step interface. It enables users to integrate extensive toolsets without exceeding context limits or incurring high API costs.132Apache 2.0
- AlicenseNot gradedqualityCmaintenanceReduces LLM context window overhead by proxying multiple MCP servers through a few efficient dispatch tools instead of registering hundreds of individual tool schemas. It supports multi-account routing and tool discovery for both CLI-based and persistent MCP server configurations.MIT
- AlicenseNot gradedqualityBmaintenanceAggregates tools from multiple upstream MCP servers and exposes them through 4 meta-tools, enabling LLMs to discover and use hundreds of tools without loading all schemas upfront.327 PyPI3Apache 2.0