cs mcp
Find a CoreSpeed tool for a task, read its schema, and call it from a terminal as yourself — the same tools, under the same session, that an agent gets.
cs mcp runs the CoreSpeed MCP endpoint's tools under your session. An
organization can have more than a thousand of them, so an agent (or a person)
works in three steps instead of reading them all: search for the task, get the
one tool it picked, call it. Because the session is a member session, the
session-gated manage__* tools run here too.
Usage
cs mcp search <words…> [--limit <n>] [--json]
cs mcp get <tool> [--json]
cs mcp call <tool> [jsonArgs] [--raw]
cs mcp list [--json]cs mcp search search tweets
cs mcp get twitter__search_posts
cs mcp call twitter__search_posts '{"query": "from:corespeed", "account": "@corespeed"}'search
cs mcp search ranks your tools for a need described in words and prints one
line per match, best first: the tool name, its declared hints (read-only,
destructive) and the first sentence of its description.
twitter__search_posts [read-only] Search recent posts on X (Twitter).
twitter__create_post Post a new tweet, or reply with reply_to_id.
social__x_search [read-only] Search public X posts by keyword (search_type Top | Latest | Media | People | Lists; paginate with cursor).It matches tool names, descriptions and argument names and descriptions, so
describe the task rather than guessing an identifier. It prints the ten best
matches; --limit changes that, and --json prints the matches' full
definitions instead. A tool only exists here once its connector is connected
(cs connectors list).
get
cs mcp get prints one tool in full: its description as written, its input
schema (and output schema) verbatim — every type, range, default and required
field the tool declares — and a call to start from. For a tool that takes
account, it also lists the accounts connected for that connector; account
is required when there is more than one.
twitter__search_posts [read-only]
Search recent posts on X (Twitter). Returns up to max_results posts matching the query.
Input schema:
{
"type": "object",
"properties": { … },
"required": ["query"]
}
Connected accounts (pass one as account): @acme, @corespeed
Call it:
cs mcp call 'twitter__search_posts' '{"query":"<string>","account":"@acme"}'--json prints the tool's definition exactly as tools/list declares it. An
unknown name exits 1 and names the closest tools.
list
cs mcp list prints every tool you can call, one line each in the same format
as search, already filtered to your connected accounts and enabled
capabilities. --json prints the tools' definitions exactly as tools/list
declares them:
cs mcp list --json | jq -r '.[].name'call
cs mcp call invokes one tool with JSON arguments and prints its result. The
arguments must be a single valid JSON object.
cs mcp call memory__search_memory '{"query": "rollout window"}'
cs mcp call manage__whoamiThe result is the tool's structuredContent when it returns one: the MCP spec
makes that the result data, validated against the tool's output schema, and
the text a tool adds beside it is a copy for clients that cannot read it. When
that text is more than a JSON copy of the result, a line on stderr says it was
not shown. Some tools put their answer in the text and only metadata in
structuredContent — media__understand does — so read those with --raw. A
tool without structuredContent prints its content: JSON text pretty-printed,
other text as written, and a one-line summary for images, audio and resources
instead of their bytes. Numbers and strings are printed exactly as the server
sent them, 64-bit integers included.
--raw prints the CallToolResult exactly as it arrived — content,
structuredContent, isError and _meta:
cs mcp call twitter__search_posts '{"query": "from:corespeed"}' --raw \
| jq -r '.content[0].text | fromjson | .data[].id'The result is printed whatever it says. The exit code then says whether the
tool did what it was asked, and the reason goes to stderr:
| Code | The call |
|---|---|
0 | Ran and succeeded. |
1 | Was refused: the tool answered isError: true, the tool does not exist, or the arguments were invalid. |
4 | Did not run because of the organization's standing, such as its balance or a suspension. |
5 | Hit a CoreSpeed failure. Retry later. |
6 | Is waiting for a human's approval and has not run. |
A call that waits for approval prints the approval id and the call that waits for the decision. Run it right away, because the request expires if nobody waits on it:
cs mcp call manage__approval_wait '{"approval_id": "…"}'Read Error handling for what to do with each error code.