python -m charter.mcp
str
required
Which pack to serve. One of
gmail, gcalendar, gsheets, gdocs, gdrive,
gforms, slack, github, stripe, linear, shopify, firecrawl, notion,
granola, tavily.
Anything else
is rejected by the argument parser, which exits 2.str
default:"the pack name"
The MCP server name reported to the client.
flag
Send every tool schema up front instead of loading them on demand. Use it with
a client that ignores
notifications/tools/list_changed.flag
Print usage and exit.
TOOLS, and the credential from
the environment — the packs read their documented
variable on first use, so no configure() call is needed here.
Schemas are sent on demand, through a
ToolSession the server holds: the
client is offered a single ToolSearch listing every tool by name, and loading
one emits notifications/tools/list_changed so the client re-lists and sees it
appear.
On start it writes one line to stderr, keeping stdout clear for the protocol:
mcp extra raises
ImportError from the adapter import, which happens after the pack loads.
Configuring a client
Using it as a function
main and load_pack are importable, but charter.mcp is not part of the
public surface: it is the entry point, and the supported way to reach a pack’s
tools from your own code is the pack itself.
Related
- MCP server — what the client sees, and why a raw token is the wrong credential for a long-lived server
- Adapters — the same tools as LangChain or OpenAI functions
- Configuration — the environment variables