Obsah

mcporter – TypeScript toolkit pro MCP

Vytvořeno: 6.5.2026 | Aktualizováno: 06.05.2026 05:35

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, 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_CONFIGconfig/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:

mcpc je lepší volba, pokud:

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.

Zdroje