mirror of
https://github.com/luongnv89/claude-howto.git
synced 2026-05-09 22:07:32 +02:00
docs: Add MCPorter runtime to MCP context bloat section
Add MCPorter (github.com/steipete/mcporter) as a practical tool for reducing MCP context bloat through selective tool exposure and typed wrappers. Includes features table, installation, and usage examples.
This commit is contained in:
@@ -833,6 +833,60 @@ Code execution introduces its own complexity. Running agent-generated code requi
|
|||||||
|
|
||||||
The benefits — reduced token costs, lower latency, improved tool composition — should be weighed against these implementation costs. For agents with only a few MCP servers, direct tool calls may be simpler. For agents at scale (dozens of servers, hundreds of tools), code execution is a significant improvement.
|
The benefits — reduced token costs, lower latency, improved tool composition — should be weighed against these implementation costs. For agents with only a few MCP servers, direct tool calls may be simpler. For agents at scale (dozens of servers, hundreds of tools), code execution is a significant improvement.
|
||||||
|
|
||||||
|
### MCPorter: A Runtime for MCP Tool Composition
|
||||||
|
|
||||||
|
[MCPorter](https://github.com/steipete/mcporter) is a TypeScript runtime and CLI toolkit that makes calling MCP servers practical without boilerplate — and helps reduce context bloat through selective tool exposure and typed wrappers.
|
||||||
|
|
||||||
|
**What it solves:** Instead of loading all tool definitions from all MCP servers upfront, MCPorter lets you discover, inspect, and call specific tools on demand — keeping your context lean.
|
||||||
|
|
||||||
|
**Key features:**
|
||||||
|
|
||||||
|
| Feature | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| **Zero-config discovery** | Auto-discovers MCP servers from Cursor, Claude, Codex, or local configs |
|
||||||
|
| **Typed tool clients** | `mcporter emit-ts` generates `.d.ts` interfaces and ready-to-run wrappers |
|
||||||
|
| **Composable API** | `createServerProxy()` exposes tools as camelCase methods with `.text()`, `.json()`, `.markdown()` helpers |
|
||||||
|
| **CLI generation** | `mcporter generate-cli` converts any MCP server into a standalone CLI with `--include-tools` / `--exclude-tools` filtering |
|
||||||
|
| **Parameter hiding** | Optional parameters stay hidden by default, reducing schema verbosity |
|
||||||
|
|
||||||
|
**Installation:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npx mcporter list # No install required — discover servers instantly
|
||||||
|
pnpm add mcporter # Add to a project
|
||||||
|
brew install steipete/tap/mcporter # macOS via Homebrew
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example — composing tools in TypeScript:**
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import { createRuntime, createServerProxy } from "mcporter";
|
||||||
|
|
||||||
|
const runtime = await createRuntime();
|
||||||
|
const gdrive = createServerProxy(runtime, "google-drive");
|
||||||
|
const salesforce = createServerProxy(runtime, "salesforce");
|
||||||
|
|
||||||
|
// Data flows between tools without passing through the model context
|
||||||
|
const doc = await gdrive.getDocument({ documentId: "abc123" });
|
||||||
|
await salesforce.updateRecord({
|
||||||
|
objectType: "SalesMeeting",
|
||||||
|
recordId: "00Q5f000001abcXYZ",
|
||||||
|
data: { Notes: doc.text() }
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example — CLI tool call:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Call a specific tool directly
|
||||||
|
npx mcporter call linear.create_comment issueId:ENG-123 body:'Looks good!'
|
||||||
|
|
||||||
|
# List available servers and tools
|
||||||
|
npx mcporter list
|
||||||
|
```
|
||||||
|
|
||||||
|
MCPorter complements the code-execution approach described above by providing the runtime infrastructure for calling MCP tools as typed APIs — making it straightforward to keep intermediate data out of the model context.
|
||||||
|
|
||||||
## Best Practices
|
## Best Practices
|
||||||
|
|
||||||
### Security Considerations
|
### Security Considerations
|
||||||
@@ -1002,5 +1056,7 @@ export GITHUB_TOKEN="your_token"
|
|||||||
- [MCP Protocol Specification](https://modelcontextprotocol.io/specification)
|
- [MCP Protocol Specification](https://modelcontextprotocol.io/specification)
|
||||||
- [MCP GitHub Repository](https://github.com/modelcontextprotocol/servers)
|
- [MCP GitHub Repository](https://github.com/modelcontextprotocol/servers)
|
||||||
- [Available MCP Servers](https://github.com/modelcontextprotocol/servers)
|
- [Available MCP Servers](https://github.com/modelcontextprotocol/servers)
|
||||||
|
- [MCPorter](https://github.com/steipete/mcporter) — TypeScript runtime & CLI for calling MCP servers without boilerplate
|
||||||
|
- [Code Execution with MCP](https://www.anthropic.com/engineering/code-execution-with-mcp) — Anthropic's engineering blog on solving context bloat
|
||||||
- [Claude Code CLI Reference](https://code.claude.com/docs/en/cli-reference)
|
- [Claude Code CLI Reference](https://code.claude.com/docs/en/cli-reference)
|
||||||
- [Claude API Documentation](https://docs.anthropic.com)
|
- [Claude API Documentation](https://docs.anthropic.com)
|
||||||
|
|||||||
Reference in New Issue
Block a user