{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ece5pxs4gad5","handle":"casual-mcp","url":"https://wellknown.network/agents/casual-mcp","links":{"self":"https://wellknown.network/agents/casual-mcp/record.json","html":"https://wellknown.network/agents/casual-mcp","markdown":"https://wellknown.network/agents/casual-mcp/record.md","api":"https://wellknown.network/api/v1/agents/casual-mcp","status":"https://wellknown.network/api/v1/agents/casual-mcp/status","claim":"https://wellknown.network/agents/casual-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/casual-mcp/claim.json","badge":"https://wellknown.network/agents/casual-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:casual-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"casual-mcp","summary":"Multi-server MCP client for LLM tool orchestration","description":"# Casual MCP\n\n![PyPI](https://img.shields.io/pypi/v/casual-mcp)\n![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)\n\n**Casual MCP** is a Python framework for building, evaluating, and serving LLMs with tool-calling capabilities using [Model Context Protocol (MCP)](https://modelcontextprotocol.io).\n\n## Features\n\n- Multi-server MCP client using [FastMCP](https://github.com/jlowin/fastmcp)\n- OpenAI, Ollama, and Anthropic provider support (via [casual-llm](https://github.com/AlexStansfield/casual-llm))\n- Recursive tool-calling chat loop\n- Toolsets for selective tool filtering per request\n- **Tool discovery** -- defer tool loading and let the LLM search for tools on demand via BM25\n- Usage statistics tracking (tokens, tool calls, LLM calls)\n- System prompt templating with Jinja2\n- CLI and API interfaces\n\n## Installation\n\nThe base package includes the core framework. Install with the extras for the LLM provider(s) you need:\n\n```bash\n# Using uv\nuv add casual-mcp[openai]\nuv add casual-mcp[anthropic]\nuv add casual-mcp[ollama]\n\n# Multiple providers\nuv add casual-mcp[openai,anthropic]\n\n# All providers\nuv add casual-mcp[all]\n\n# Using pip\npip install casual-mcp[openai]\n```\n\nFor development:\n\n```bash\ngit clone https://github.com/casualgenius/casual-mcp.git\ncd casual-mcp\nuv sync --group dev\n```\n\n## Quick Start\n\n1. Create `casual_mcp_config.json`:\n\n```json\n{\n  \"clients\": {\n    \"openai\": { \"provider\": \"openai\" }\n  },\n  \"models\": {\n    \"gpt-4.1\": { \"client\": \"openai\", \"model\": \"gpt-4.1\" }\n  },\n  \"servers\": {\n    \"time\": { \"command\": \"python\", \"args\": [\"mcp-servers/time/server.py\"] }\n  }\n}\n```\n\n2. Set your API key: `export OPENAI_API_KEY=your-key`\n\n3. Start the server: `casual-mcp serve`\n\n4. Make a request:\n\n```bash\ncurl -X POST http://localhost:8000/chat \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"model\": \"gpt-4.1\", \"messages\": [{\"role\": \"user\", \"content\": \"What time is it?\"}]}'\n```\n\n## Configuration\n\nConfigure clients, models, MCP servers, and toolsets in `casu…","publisher":{"name":"Alex Stansfield","url":null},"homepage":"https://github.com/casualgenius/casual-mcp","repository":"https://github.com/casualgenius/casual-mcp","version":"1.0.0","license":"MIT","protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:casual-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"},{"slug":"dev.version-control","name":"Version Control","confidence":0.745,"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":"casual-mcp","registry":"pypi","observedAt":"2026-09-09T11:32:45.153Z","publishedAt":"2026-02-27T14:03:48.297788Z","latestVersion":"1.0.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"casual-mcp","url":"https://pypi.org/project/casual-mcp/","firstSeenAt":"2026-09-09T11:29:46.459Z","fetchedAt":"2026-09-09T11:29:46.459Z","normalizedAt":"2026-09-09T11:29:46.459Z"}]},"firstSeenAt":"2026-09-09T11:29:46.459Z","updatedAt":"2026-09-09T11:32:45.153Z"}