{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_ef7v3wqy7az9","handle":"mcp-sage","url":"https://wellknown.network/agents/mcp-sage","links":{"self":"https://wellknown.network/agents/mcp-sage/record.json","html":"https://wellknown.network/agents/mcp-sage","markdown":"https://wellknown.network/agents/mcp-sage/record.md","api":"https://wellknown.network/api/v1/agents/mcp-sage","status":"https://wellknown.network/api/v1/agents/mcp-sage/status","claim":"https://wellknown.network/agents/mcp-sage/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mcp-sage/claim.json","badge":"https://wellknown.network/agents/mcp-sage/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mcp-sage/history","tools":"https://wellknown.network/api/v1/agents/mcp-sage/tools"},"ard":{"identifier":"urn:air::server:mcp-sage","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"mcp-sage","summary":"MCP server providing persistent SageMath sessions (Sage REPL over the Model Context Protocol)","description":"# mcp-sage\n\nAn MCP server providing persistent [SageMath](https://www.sagemath.org) sessions\nto any MCP-compatible host: Claude Code, Claude Desktop, Cursor, or an agent\nharness such as [mcp-minion](https://github.com/szeider/mcp-solver).\n\nWithout this server, each SageMath computation runs in isolation: loading a\nlist of graphs, analyzing one, then querying its automorphism group would\nrequire reloading the graph file three times. The Sage REPL server maintains\nstate across calls, enabling iterative mathematical exploration.\n\n## Quickstart\n\nInstalled from [PyPI](https://pypi.org/project/mcp-sage/) (the package is\n`mcp-sage`; the unrelated `sage-mcp` on PyPI is a different project):\n\n```bash\nuvx mcp-sage\n```\n\nClaude Code / Claude Desktop config (`.mcp.json` or `~/.claude.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"sage-repl\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-sage\"]\n    }\n  }\n}\n```\n\nAlternatively, the server is a single file using UV's inline dependency syntax\n(PEP 723), so a checkout runs without installation:\n\n```bash\nuv run sage_repl_server.py\n```\n\nAn optional `--directory /path/to/workdir` argument sets the server's working\ndirectory, so that relative paths in Sage code (e.g. a file written by the\nagent) resolve inside a chosen run folder.\n\n## Tools\n\n| Tool | Purpose |\n|------|---------|\n| `sage_start` | Create a new named session (auto-created on first `sage_exec` if omitted) |\n| `sage_exec` | Execute Sage/Python code and return results |\n| `sage_interrupt` | Send Ctrl+C to stop long-running computations |\n| `sage_stop` | Terminate a session and release resources |\n| `sage_list` | Show all active sessions |\n\n`sage_exec` returns structured output with separate fields for the expression\nresult, stdout, stderr, and any errors. A configurable timeout (default 60\nseconds) prevents hanging on infinite loops.\n\n## Architecture\n\nThe server drives SageMath through the Jupyter kernel protocol rather than raw\nsubprocess management: reliable prompt detection, cle…","publisher":{"name":"Stefan Szeider","url":null},"homepage":null,"repository":"https://github.com/szeider/mcp-sage","version":"0.1.1","license":"MIT","protocols":["mcp"],"tags":["mcp","sagemath","sage","computer-algebra","model-context-protocol","agent"],"pricing":null,"endpoints":[{"url":"pypi:mcp-sage","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","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"code.execution","name":"Code Execution","confidence":0.768,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"}],"categories":["code","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-sage","registry":"pypi","observedAt":"2026-10-28T13:24:37.583Z","publishedAt":"2026-10-13T16:18:28.978571Z","latestVersion":"0.1.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"mcp-sage","url":"https://pypi.org/project/mcp-sage/","firstSeenAt":"2026-09-10T03:19:29.196Z","fetchedAt":"2026-10-28T13:22:32.703Z","normalizedAt":"2026-10-28T13:22:32.703Z"}]},"firstSeenAt":"2026-09-10T03:19:29.196Z","updatedAt":"2026-10-28T13:24:37.583Z"}