{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_4mx4wrb4s4eq","handle":"streamlit-mcp","url":"https://wellknown.network/agents/streamlit-mcp","links":{"self":"https://wellknown.network/agents/streamlit-mcp/record.json","html":"https://wellknown.network/agents/streamlit-mcp","markdown":"https://wellknown.network/agents/streamlit-mcp/record.md","api":"https://wellknown.network/api/v1/agents/streamlit-mcp","status":"https://wellknown.network/api/v1/agents/streamlit-mcp/status","claim":"https://wellknown.network/agents/streamlit-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/streamlit-mcp/claim.json","badge":"https://wellknown.network/agents/streamlit-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/streamlit-mcp/history","tools":"https://wellknown.network/api/v1/agents/streamlit-mcp/tools"},"ard":{"identifier":"urn:air::server:streamlit-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"streamlit-mcp","summary":"Serve an existing Streamlit app as an MCP server — agents drive it natively, no browser.","description":"# streamlit-mcp\n\n**Serve any Streamlit app as an MCP server.** Agents introspect your app's widgets,\nset values, click buttons, and read the rendered output and `session_state` — natively,\nover MCP, with **no browser automation**.\n\n📖 **Documentation:** <https://dkedar7.github.io/streamlit-mcp/>\n\n```bash\npip install streamlit-mcp          # or run with no install via: uvx streamlit-mcp ...\n\n# serve an app over MCP (stdio for local clients)\nstreamlit-mcp serve app.py\n# ...or HTTP/SSE on loopback for local networked agents\nstreamlit-mcp serve app.py --transport http --port 8000\n\n# drive it yourself from the terminal (same engine the agent uses)\nstreamlit-mcp inspect app.py\nstreamlit-mcp call app.py --set \"Name=agent\" --click \"Save\" --read\n```\n\nStreamlit has no callback graph — it reruns the whole script per interaction — so\nstreamlit-mcp drives the app headlessly through Streamlit's own test runtime\n(`streamlit.testing.v1.AppTest`) and returns the **semantic element tree**, not pixels.\nGradio and Dash already shipped native app-as-MCP; this fills the Streamlit gap.\n\n## Demo\n\nA normal Streamlit app (what a human opens in a browser) and what an agent does with the same\napp over MCP — `inspect` the widgets, `call` to set values / click / read the result. No browser:\n\n<table>\n<tr>\n<td width=\"50%\"><img src=\"docs/assets/demo-app.png\" alt=\"A Streamlit signup form in a browser\"></td>\n<td width=\"50%\"><img src=\"docs/assets/agent-view.png\" alt=\"The streamlit-mcp CLI introspecting and driving the app\"></td>\n</tr>\n<tr>\n<td align=\"center\"><em>The app a human runs</em></td>\n<td align=\"center\"><em>What the agent sees over MCP</em></td>\n</tr>\n</table>\n\nA human can also watch the agent work **live** in their browser — no refresh, no browser automation —\nby opting in with one `with` block (`from streamlit_mcp.live import live`). See the\n[live / human-in-the-loop guide](https://dkedar7.github.io/streamlit-mcp/live/).\n\n## Use it with an MCP client\n\n**Claude Desktop / Cursor** — add to yo…","publisher":{"name":"Kedar Dabhadkar","url":null},"homepage":"https://dkedar7.github.io/streamlit-mcp/","repository":"https://github.com/dkedar7/streamlit-mcp/issues","version":"0.11.1","license":"MIT License  Copyright (c) 2026 Kedar Dabhadkar  Permission is …","protocols":["mcp"],"tags":["agent","automation","llm","mcp","model-context-protocol","streamlit"],"pricing":null,"endpoints":[{"url":"pypi:streamlit-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":"infra.browser-automation","name":"Browser Automation","confidence":0.859,"provenance":"derived"},{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.779,"provenance":"derived"}],"categories":["dev","infra"],"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":"streamlit-mcp","registry":"pypi","observedAt":"2026-11-10T03:27:05.758Z","publishedAt":"2026-11-09T12:47:32.765239Z","latestVersion":"0.11.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"streamlit-mcp","url":"https://pypi.org/project/streamlit-mcp/","firstSeenAt":"2026-09-10T13:19:55.470Z","fetchedAt":"2026-11-10T03:26:14.808Z","normalizedAt":"2026-11-10T03:26:14.808Z"}]},"firstSeenAt":"2026-09-10T13:19:55.470Z","updatedAt":"2026-11-10T03:27:05.758Z"}