{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_r99rdckegn49","handle":"grains-mcp","url":"https://wellknown.network/agents/grains-mcp","links":{"self":"https://wellknown.network/agents/grains-mcp/record.json","html":"https://wellknown.network/agents/grains-mcp","markdown":"https://wellknown.network/agents/grains-mcp/record.md","api":"https://wellknown.network/api/v1/agents/grains-mcp","status":"https://wellknown.network/api/v1/agents/grains-mcp/status","claim":"https://wellknown.network/agents/grains-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/grains-mcp/claim.json","badge":"https://wellknown.network/agents/grains-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:grains-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"grains-mcp","summary":"MCP server for Grains: build and deploy hosted AI agents without leaving Claude.","description":"<p align=\"center\"><img src=\"https://grains.run/brand-icon.png\" width=\"96\" alt=\"Grains\"></p>\n\n# grains-mcp\n\nAn MCP server for **Grains** — build and deploy a hosted agent to grains.run\nwithout leaving Claude.\n\nIt's a thin client over the Grains control-plane API. Every tool call acts as\none Grains user, authenticated by that user's **deploy token**.\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `grains_scaffold` | Generate `grains_app.py` + `grains.toml` for a new agent (framework: none/crewai/langchain/langgraph). Pure local — Claude writes the files. |\n| `grains_deploy` | Create the agent (if new) and deploy the given files. Returns status + the agent's signed identity (did). |\n| `grains_invoke` | Send a task to a deployed agent and return its reply. |\n| `grains_logs` | Recent agent logs. |\n| `grains_list_agents` / `grains_agent_status` | List / inspect your agents. |\n| `grains_secret_set` | Set an agent secret (e.g. `OPENAI_API_KEY`). Value is never echoed back. |\n| `grains_set_price` | Make an agent public / set its per-message price (decimal string). |\n\n## Setup\n\n**Hosted (recommended)** — nothing to install, no token to paste; Claude Code\nopens your browser to sign in with GitHub (OAuth 2.1 + PKCE, dynamic client\nregistration):\n\n```bash\nclaude mcp add --transport http grains https://mcp.grains.run/mcp\n```\n\nOr with a deploy token (from [api.grains.run/welcome](https://api.grains.run/welcome))\nas a header, skipping the browser flow:\n\n```bash\nclaude mcp add --transport http grains https://mcp.grains.run/mcp \\\n  --header \"Authorization: Bearer grains_dt_your_token_here\"\n```\n\n**Local** — run this same package on your machine (needs\n[uv](https://docs.astral.sh/uv/)):\n\n```bash\nclaude mcp add grains \\\n  --env GRAINS_API_URL=https://api.grains.run \\\n  --env GRAINS_DEPLOY_TOKEN=grains_dt_your_token_here \\\n  -- uvx grains-mcp\n```\n\n<details>\n<summary>Claude Desktop or another MCP client? Paste this JSON instead.</summary>\n\n```json\n{\n  \"mcpServers\": {\n    \"grains\": {\n    …","publisher":{"name":"Grains","url":null},"homepage":"https://grains.run/docs.html","repository":"https://github.com/0000F8/grains","version":"0.2.0","license":null,"protocols":["mcp"],"tags":["ai","agents","llm","claude","mcp","x402","hosting"],"pricing":null,"endpoints":[{"url":"pypi:grains-mcp","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","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"declared"}],"categories":["commerce","security"],"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":"grains-mcp","registry":"pypi","observedAt":"2026-09-09T16:25:42.876Z","publishedAt":"2026-08-24T15:59:24.485201Z","latestVersion":"0.2.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"grains-mcp","url":"https://pypi.org/project/grains-mcp/","firstSeenAt":"2026-09-09T16:24:47.978Z","fetchedAt":"2026-09-09T16:24:47.978Z","normalizedAt":"2026-09-09T16:24:47.978Z"}]},"firstSeenAt":"2026-09-09T16:24:47.978Z","updatedAt":"2026-09-09T16:25:42.876Z"}