{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_f2nu373udhep","handle":"mcp-to-cli-kit","url":"https://wellknown.network/agents/mcp-to-cli-kit","links":{"self":"https://wellknown.network/agents/mcp-to-cli-kit/record.json","html":"https://wellknown.network/agents/mcp-to-cli-kit","markdown":"https://wellknown.network/agents/mcp-to-cli-kit/record.md","api":"https://wellknown.network/api/v1/agents/mcp-to-cli-kit","status":"https://wellknown.network/api/v1/agents/mcp-to-cli-kit/status","claim":"https://wellknown.network/agents/mcp-to-cli-kit/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mcp-to-cli-kit/claim.json","badge":"https://wellknown.network/agents/mcp-to-cli-kit/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mcp-to-cli-kit/history","tools":"https://wellknown.network/api/v1/agents/mcp-to-cli-kit/tools"},"ard":{"identifier":"urn:air::server:mcp-to-cli-kit","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"mcp-to-cli-kit","summary":"Build a typed command-line interface for one or more remote MCP servers","description":"# mcp-to-cli-kit\n\nA small library for turning one or more remote MCP servers into a typed command-line tool. Each MCP tool becomes a subcommand with real options compiled from its JSON input schema, so a shell user or an AI coding agent can call it without hand-writing JSON-RPC.\n\nThe kit owns the parts every such CLI needs and tends to get wrong when it is copied from project to project: the mapping from JSON schema to options, the configuration loading, the schema cache, and output that stays valid JSON when piped. A consumer package only supplies its bin name and a default configuration.\n\n## Installation\n\nAdd the kit to the consumer package:\n\n```bash\nuv add mcp-to-cli-kit\n```\n\n## Building a consumer package\n\nA consumer is a small Python package with one console script. It names the bin, gives the default configuration, and hands both to the kit.\n\n`pyproject.toml`:\n\n```toml\n[project]\nname = \"example-tool\"\nversion = \"0.1.0\"\nrequires-python = \">=3.11\"\ndependencies = [\"mcp-to-cli-kit\"]\n\n[project.scripts]\nexample-tool = \"example_tool.cli:main\"\n\n[build-system]\nrequires = [\"hatchling\"]\nbuild-backend = \"hatchling.build\"\n\n[tool.hatch.build.targets.wheel]\npackages = [\"src/example_tool\"]\n```\n\n`src/example_tool/cli.py`:\n\n```python\nfrom typing import Any\n\nfrom mcp_to_cli_kit.cli import main as kit_main\n\nDEFAULT_CONFIG: dict[str, Any] = {\n    \"help\": \"Call the tools of the example MCP server.\",\n    \"servers\": {\"example\": {\"url\": \"https://mcp.example.com/mcp\"}},\n}\n\ndef main() -> None:\n    kit_main(\"example-tool\", DEFAULT_CONFIG, distribution=\"example-tool\")\n```\n\n`DEFAULT_CONFIG` has the same shape as the config file (see [Configuration](#configuration)), so a user's `~/.config/example-tool/config.yaml` can override any key of it.\n\n`distribution` is the name of the consumer's own package. The kit reads its version from the package metadata and shows it in `--version`, in the `X-Mcp-Client: example-tool/<version> (mcp-to-cli-kit <version>)` header of every request, and in the `cl…","publisher":null,"homepage":"https://github.com/fprochazka/mcp-to-cli-kit","repository":"https://github.com/fprochazka/mcp-to-cli-kit","version":"0.2.0","license":null,"protocols":["mcp"],"tags":["ai-agent","cli","click","json-schema","mcp","model-context-protocol"],"pricing":null,"endpoints":[{"url":"pypi:mcp-to-cli-kit","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"dev.terminal","name":"Terminal & Shell","confidence":1,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.859,"provenance":"derived"}],"categories":["dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"mcp-to-cli-kit","registry":"pypi","observedAt":"2026-10-24T17:29:24.249Z","publishedAt":"2026-10-18T17:50:15.093264Z","latestVersion":"0.2.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"mcp-to-cli-kit","url":"https://pypi.org/project/mcp-to-cli-kit/","firstSeenAt":"2026-10-18T16:29:42.149Z","fetchedAt":"2026-10-24T17:28:19.021Z","normalizedAt":"2026-10-24T17:28:19.021Z"}]},"firstSeenAt":"2026-10-18T16:29:42.149Z","updatedAt":"2026-10-24T17:29:24.249Z"}