--- summary: 'Cheatsheet for the various mcporter call argument syntaxes and best practices.' read_when: - 'Designing or debugging tool invocation UX' --- # Tool Calling Cheatsheet mcporter accepts multiple argument styles so you can match whatever feels most natural in your shell or script. Every style feeds the same validation pipeline (schema-driven type coercion, required-field checks, enum hints), so pick the one that's easiest to type. ## 1. Inferred Call Command ```bash mcporter linear.list_issues team=ENG mcporter context7.resolve-library-id libraryName:value mcporter firecrawl.scrape 'url: "https://example.com"' ``` - Dotted tokens (`server.tool`) automatically run the `call` command. - Trailing arguments can use `key=value`, `key:value`, or `key: value` formats; multi-word values need normal shell quoting. - `server=value` / `tool=value` behave like their flag counterparts if you need to override the selector. ## 2. Explicit `call` + Flags ```bash mcporter call linear.create_issue --team ENG --title "Bug report" mcporter call chrome-devtools.take_snapshot output=markdown mcporter call context7.resolve-library-id libraryName: value ``` - Use `--flag value` when you prefer long-form CLI syntax. - Mixed forms are fine: `mcporter call linear.create_issue --team ENG title=value due: tomorrow`. - Use `body=@comment.md` (or `--body @comment.md`) to read an exact UTF-8 string from a file; use `body=@@literal` when the value itself starts with `@`. - `--args '{"title":"Bug"}'` still ingests JSON payloads directly. - Unknown long flags now error instead of silently becoming tool arguments; use `title=value`, `--args`, or `--` before literal positional values beginning with `--`. ## 3. Function-Call Syntax ```bash mcporter call 'linear.create_issue(title: "Bug", team: "ENG")' mcporter 'context7.resolve-library-id(query: "React hooks docs", libraryName: "react")' mcporter 'context7.resolve-library-id("React hooks docs", "react")' ``` - Mirrors the pseudo-TypeScript signature printed by `mcporter list`. - You may omit labels and rely on the schema order—`mcporter 'context7.resolve-library-id("React hooks docs", "react")'` maps arguments to the live schema order automatically. - Supports nested objects/arrays and gives detailed parser errors when the expression is malformed. - Wrap the whole expression in quotes so the shell leaves parentheses/commas intact. ## 4. Mixed Server/Tool Overrides ```bash mcporter call --server linear resolve_library_id libraryName=value mcporter call --tool scrape firecrawl url=https://example.com ``` - Pass `--server` / `--tool` when you want to reuse cached selectors or the command inference isn’t enough. - Anything after the selector uses the same unified key/value parsing. ## 5. Ad-hoc Servers ```bash mcporter call https://mcp.deepwiki.com/sse.ask_question repoName=value question:"What's new?" mcporter call --http-url https://mcp.example.com/mcp fetch_docs repoName=value ``` - Bare URLs trigger ad-hoc server registration; you can still use all of the styles above for arguments. - Combine with `--stdio "bun run ./server.ts"` (plus `--stdio-arg`, `--env`, `--cwd`) for local transports. --- **Tips** - Use `mcporter list ` to see parameter names, return types, and example invocations. - Optional fields hide by default; add `--all-parameters` when listing a server to reveal everything. - `mcporter auth ` accepts the same ad-hoc flags, so you can authenticate immediately after a 401 without editing config.