Toto je starší verze dokumentu!
mcporter – TypeScript toolkit pro MCP
Vytvořeno: 6.5.2026 | Aktualizováno: 06.05.2026 05:34
mcporter je open-source TypeScript runtime, CLI a generátor kódu pro Model Context Protocol (MCP). Umožňuje volat MCP servery přímo z terminálu nebo z TypeScript kódu, generovat z nich standalone CLI nástroje nebo typované klientské wrappery – bez ručního psaní boilerplate nebo procházení schematu.
Projekt vytvořil Peter Steinberger [@steipete](https://github.com/steipete), primárně pro vývojáře kteří chtějí MCP servery pohodlně volat z kódu, skládat automatizace a generovat artefakty z jejich definic. Distribuován je jako balíček mcporter na npm a přes Homebrew; licence MIT.
Proč mcporter
Projekt vychází z Anthropic doporučení pro „code execution„ workflow – tedy přístupu, kdy AI agent volá nástroje přes shellový příkaz místo přes konfiguraci MCP klienta. mcporter se na tuto filozofii napojuje tím, že MCP server zpřístupňuje jako CLI příkaz, TypeScript API nebo vygenerovaný standalone binary.
Klíčová výhoda: mcporter automaticky čte existující konfigurace MCP serverů z Claude Code, Cursor, Codex, Windsurf, OpenCode a VS Code. Nemusíš nic přepisovat – stačí spustit npx mcporter list a hned vidíš všechny servery, které máš nakonfigurované v těchto nástrojích.
Instalace
mcporter funguje ihned přes npx bez globální instalace:
npx mcporter list
Pro globální instalaci:
npm install -g mcporter # nebo pnpm add -g mcporter
Přes Homebrew:
brew tap steipete/tap brew install steipete/tap/mcporter
Základní použití
Výpis dostupných serverů a nástrojů
# Výpis všech nakonfigurovaných serverů npx mcporter list # Výpis nástrojů konkrétního serveru (TypeScript-style signatury) npx mcporter list linear # Výpis se všemi parametry včetně volitelných npx mcporter list linear --all-parameters # JSON výstup pro strojové zpracování npx mcporter list linear --json
mcporter zobrazí nástroje ve formátu TypeScript signatur – je tak jasné, jak nástroj volat:
linear - Hosted Linear MCP; exposes issue search, create, and workflow tooling. 23 tools · 1654ms · HTTP https://mcp.linear.app/mcp /** * Create a comment on a specific Linear issue * @param issueId The issue ID * @param body The content of the comment as Markdown */ function create_comment(issueId: string, body: string, parentId?: string);
Volání nástrojů
mcporter podporuje tři syntaxe pro volání – všechny jsou ekvivalentní:
# Colon-delimited (shell-friendly) npx mcporter call linear.create_comment issueId:ENG-123 body:'Looks good!' # Function-call styl (stejný jako v mcporter list výstupu) npx mcporter call 'linear.create_comment(issueId: "ENG-123", body: "Looks good!")' # Zkratka – bez slovesa call npx mcporter linear.create_comment issueId:ENG-123 body:'Looks good!'
Pokud zadáš špatný název nástroje, mcporter automaticky navrhne správný (fuzzy matching s Did you mean …?).
Ad-hoc servery bez konfigurace
mcporter umí volat libovolný MCP endpoint bez toho, aby byl v config souboru:
# Připojení přes URL npx mcporter list --http-url https://mcp.linear.app/mcp --name linear # Lokální stdio server npx mcporter call --stdio "bun run ./local-server.ts" --name local-tools # Uložení definice pro opakované použití npx mcporter list --http-url https://mcp.example.com/mcp --name myserver --persist config/mcporter.json
Generování standalone CLI
Jedna z klíčových funkcí: generate-cli převede definici MCP serveru na samostatné CLI:
# Z URL serveru npx mcporter generate-cli --command https://mcp.context7.com/mcp # Ze stdio příkazu npx mcporter generate-cli --command "npx -y chrome-devtools-mcp@latest" # S kompilací do binárního souboru (Bun) npx mcporter generate-cli --command https://mcp.context7.com/mcp --compile # Pouze vybrané nástroje npx mcporter generate-cli linear --include-tools create_issue,list_issues
Výstupem jsou soubory context7.ts (TypeScript šablona) a volitelně context7.js (bundlovaný CLI). Každý vygenerovaný artifact obsahuje regenerační metadata – lze ho snadno přegenerovat po aktualizaci serveru:
npx mcporter inspect-cli dist/context7.js npx mcporter generate-cli --from dist/context7.js
TypeScript API
Jednorázové volání
Pro jednoduché použití z kódu slouží callOnce:
import { callOnce } from 'mcporter';
const result = await callOnce({
server: 'firecrawl',
toolName: 'crawl',
args: { url: 'https://anthropic.com' },
});
console.log(result);
callOnce automaticky nalezne server v existujících konfiguracích, zpracuje OAuth a uzavře transport po dokončení.
Runtime pro opakované volání
Pokud voláš nástroje opakovaně nebo potřebuješ connection pooling, použij createRuntime:
import { createRuntime } from 'mcporter';
const runtime = await createRuntime();
const tools = await runtime.listTools('context7');
const result = await runtime.callTool('context7', 'resolve-library-id', {
args: { libraryName: 'react' },
});
await runtime.close();
Proxy API pro typové volání
createServerProxy obalí MCP server do objektu s camelCase metodami:
import { createRuntime, createServerProxy } from 'mcporter';
const runtime = await createRuntime();
const chrome = createServerProxy(runtime, 'chrome-devtools');
const linear = createServerProxy(runtime, 'linear');
const snapshot = await chrome.takeSnapshot();
console.log(snapshot.text());
const docs = await linear.searchDocumentation({ query: 'automations' });
console.log(docs.json());
Výsledky jsou zabaleny do CallResult s pomocnými metodami .text(), .markdown(), .json(), .images().
Generování TypeScript typů
emit-ts generuje .d.ts rozhraní nebo klientské wrappery pro volání MCP serverů se statickými typy:
# Pouze typy npx mcporter emit-ts linear --out types/linear-tools.d.ts # Typový klient (d.ts + helper wrapper) npx mcporter emit-ts linear --mode client --out clients/linear.ts # S volitelným i= parametry npx mcporter emit-ts linear --include-optional
Daemon pro stavové servery
Servery jako Chrome DevTools nebo mobile-mcp potřebují udržovat stav mezi voláními (otevřené záložky, připojené zařízení). mcporter pro ně automaticky spustí background daemon:
# Stav daemonu mcporter daemon status # Ruční ovládání mcporter daemon start mcporter daemon stop mcporter daemon restart
Ostatní servery zůstávají ephemeral; daemon lze vynutit pro konkrétní server přes \“lifecycle\„: \“keep-alive\„ v konfiguraci nebo proměnnou prostředí MCPORTER_KEEPALIVE=nazev.
Konfigurace
mcporter čte konfiguraci v tomto pořadí: –config flag → MCPORTER_CONFIG → config/mcporter.json → ~/.mcporter/mcporter.json.
Formát sdílí strukturu s Cursor/Claude config soubory a podporuje importy z nich:
{
"mcpServers": {
"context7": {
"baseUrl": "https://mcp.context7.com/mcp"
},
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
},
"imports": ["claude-code", "cursor", "codex", "windsurf", "opencode", "vscode"]
}
Konfigurace lze spravovat přes CLI bez ručního editování JSON:
mcporter config list mcporter config add notion https://mcp.notion.com/mcp --auth oauth mcporter config remove notion
Filtrování nástrojů
Pro každý server lze omezit přístupné nástroje:
{
"mcpServers": {
"slack-readonly": {
"baseUrl": "https://example.com/slack/mcp",
"allowedTools": ["channels_list", "conversations_history"]
},
"filesystem-safe": {
"command": "npx -y @modelcontextprotocol/server-filesystem ~/Downloads",
"blockedTools": ["write_file", "delete_file"]
}
}
}
mcporter vs. mcpc
mcporter a mcpc (apify/mcpc) se na první pohled překrývají – oba umožňují volat MCP servery z příkazové řádky. Cílí ale na jiné problémy a jiné uživatele.
| Vlastnost | mcporter | mcpc |
|---|---|---|
| Primární cílová skupina | TypeScript vývojáři | AI agenti (Claude Code, OpenCode…) |
| Architektura | npx toolkit, žádný trvalý démon | bridge démon + CLI obálka |
| Auto-discovery konfigurací | ✅ čte Claude Code, Cursor, Codex, VS Code… | ❌ ruční mcpc connect |
| Generování CLI z MCP serveru | ✅ generate-cli | ❌ |
| TypeScript typy a proxy API | ✅ emit-ts, createServerProxy | ❌ |
| Izolace credentials od AI | ❌ | ✅ OS keychain + IPC, AI nevidí tokeny |
| Sandbox proxy režim | ❌ | ✅ mcpc connect –proxy |
| Použití bez instalace | ✅ npx mcporter call … | ❌ vyžaduje global install |
| x402 mikroplatby | ❌ | ✅ |
| Daemon pro stavové servery | ✅ mcporter daemon | ✅ bridge |
mcporter je lepší volba, pokud:
- Píšeš TypeScript aplikaci, která potřebuje volat MCP nástroje typově
- Chceš z MCP serveru vygenerovat samostatné CLI nebo
.d.tstypy - Potřebuješ rychle otestovat, co server nabízí –
npx mcporter listbez instalace
mcpc je lepší volba, pokud:
- Nasazuješ AI agenta (Claude Code, OpenCode), který volá MCP přes
Bash() - Záleží ti na tom, aby AI nikdy neviděla přihlašovací tokeny
- Sdílíš jednu instanci Playwright MCP nebo jiného stavového serveru přes více projektů
Oba projekty jsou aktivně vyvíjené a vzájemně se nevylučují – mcporter se hodí spíše ve fázi vývoje a integrace, mcpc ve fázi produkčního nasazení agenta.