Summary
Ship a minimal Python script that drives ncp-mcp-server via the official MCP Python SDK. Adopters who do not use a GUI MCP-compatible host (or who want to integrate NCP directly into Python automation) currently have no canonical example. We have a working pattern already (examples/mcp/ci_smoke.py uses raw JSON-RPC); this issue adds the SDK-driven companion.
Why this is a good first issue
- Self-contained: one new Python file under
examples/mcp/.
- No Rust knowledge needed; basic Python plus the well-documented MCP Python SDK is enough.
- Acceptance criteria are concrete and testable.
Acceptance criteria
Out of scope
- Adding the script to CI (the existing
ci_smoke.py is the required check; this script is an adopter example, not a CI gate).
- Wrapping it as a CLI or library.
Where to read
Summary
Ship a minimal Python script that drives
ncp-mcp-servervia the official MCP Python SDK. Adopters who do not use a GUI MCP-compatible host (or who want to integrate NCP directly into Python automation) currently have no canonical example. We have a working pattern already (examples/mcp/ci_smoke.pyuses raw JSON-RPC); this issue adds the SDK-driven companion.Why this is a good first issue
examples/mcp/.Acceptance criteria
examples/mcp/python_client_example.py.mcpPython SDK (pip install mcp). Document the install step in the script's docstring.ncp-mcp-serverbinary viamcp.client.stdio.stdio_clientagainstexamples/graphs/echo-pipeline/graph.yaml.initializethentools/listthentools/call(name="org.ncp-examples.echo-pipeline", arguments={...}), closes stdin, asserts clean exit.structuredContentreturned by the tool call.ci_smoke.py(binary path uses.exesuffix on Windows).Out of scope
ci_smoke.pyis the required check; this script is an adopter example, not a CI gate).Where to read
examples/mcp/ci_smoke.pyfor the raw-JSON-RPC version (mirrors the same dialog)examples/mcp/README.mdfor the directory landing page (update this to mention the new example)