skill: mcporter examples use key="value" quoting that breaks non-interactive calls (quotes become part of the value)

Author: Dwight2458Created Sep 8, 2026Updated Sep 8, 2026

Environment

  • agent-reach 1.5.0 (pipx install, Windows 11, Python 3.12)
  • mcporter latest (npm global)

Problem

All mcporter examples in the skill docs (SKILL.md + references) use the key="value" form:

mcporter call linkedin.get_person_profile linkedin_username="username" sections="experience,education"

mcporter's key=value parser does not strip inner quotes — the quotes become part of the value:

  • linkedin.get_person_profile linkedin_username="williamhgates"That is not a LinkedIn public identifier. Pass the part after /in/ ... (validation fails)
  • linkedin.search_people keywords="AI engineer" → the actual search term becomes "AI engineer" (with quotes), skewing results

In an interactive bash shell these examples happen to work, because bash strips the outer quotes first and mcporter receives a bare value. But programmatic invocations from agents (eval kernels, subprocess spawns, non-POSIX shells, PowerShell) pass the inner quotes through to mcporter, so the call fails outright or silently returns wrong results. The same command "works in a terminal, fails for the agent", which makes agents misdiagnose the channel as broken.

Minimal repro (same command, only quoting differs)

$ mcporter call linkedin.get_person_profile linkedin_username=williamhgates --timeout 90000
{ "url": "https://www.linkedin.com/in/williamhgates/", ... }   # ✅

$ mcporter call linkedin.get_person_profile 'linkedin_username="williamhgates"' --timeout 90000
That is not a LinkedIn public identifier. Pass the part after /in/ in a profile URL, for example "williamhgates".  # ❌

mcporter --help confirms the supported argument forms: key=value / key:value / --args <json>.

Affected examples on main (key="value" form)

  • agent_reach/skill/SKILL.md — Exa quick command query="query"
  • agent_reach/skill/references/career.md — 4 LinkedIn calls
  • agent_reach/skill/references/search.md — 2 Exa calls
  • agent_reach/skill/references/social.md — 3 xiaohongshu-mcp calls (keyword="query", feed_id="..." xsec_token="...")
  • agent_reach/skill/references/web.md — 3 web-reader calls

Note that mcporter call exa.web_search_exa query="query" numResults=5 silently searches for the literal string "query" (quotes included) — no error, just degraded results, which makes it even harder to notice.

Suggested fix

  1. Update all examples to key=value (when the value contains spaces, quote the whole token: "key=multi word value"), or recommend the --args '{"key":"value"}' JSON form;
  2. Optionally add an explicit one-line warning near mcporter examples (quotes become part of the value).

I have a docs-only fix ready and will submit a PR — happy to adjust direction if you prefer another approach.