{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_xfk3mpzgm2kr","handle":"yade-mcp-bridge","url":"https://wellknown.network/agents/yade-mcp-bridge","links":{"self":"https://wellknown.network/agents/yade-mcp-bridge/record.json","html":"https://wellknown.network/agents/yade-mcp-bridge","markdown":"https://wellknown.network/agents/yade-mcp-bridge/record.md","api":"https://wellknown.network/api/v1/agents/yade-mcp-bridge","status":"https://wellknown.network/api/v1/agents/yade-mcp-bridge/status","claim":"https://wellknown.network/agents/yade-mcp-bridge/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/yade-mcp-bridge/claim.json","badge":"https://wellknown.network/agents/yade-mcp-bridge/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:yade-mcp-bridge","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"yade-mcp-bridge","summary":"HTTP + SSE bridge for YADE MCP server - runs inside YADE Python environment","description":"# yade-mcp-bridge\n\n[![PyPI](https://img.shields.io/pypi/v/yade-mcp-bridge)](https://pypi.org/project/yade-mcp-bridge/)\n\nHTTP + SSE bridge that runs inside a YADE process and enables execution tools for [yade-mcp](https://pypi.org/project/yade-mcp/).\n\n## Features\n\n- **Async tasks with progress polling.** Submit a long simulation script\n  (`execute_task`) and poll its status and paginated log while it runs\n  (`check_task_status`).\n- **Live code during a run.** Send `execute_code` at any time to inspect\n  state or tune parameters mid-cycle — no need to bake probes into the\n  script up front. It shares the simulation's `__main__` namespace.\n- **Graceful interrupt.** Stop a long cycling task on request\n  (`interrupt_task`) without killing the YADE process.\n- **Unified output capture.** Python `print` and YADE console output are\n  interleaved in execution order in the task log.\n- **Zero third-party dependencies.** Pure stdlib HTTP + SSE.\n\n## Architecture\n\nYADE's Qt GUI objects are main-thread-only, so the bridge keeps\n`execute_code` on the main thread while running each task on its own\nthread — a long `O.run()` then never blocks the server or live code.\n\n```mermaid\nflowchart TD\n    C[MCP client] -->|POST /command| S[HTTP + SSE server<br/>background thread]\n    C -.->|GET /events| S\n    S -->|execute_code → queue| Q[CodeExecutor<br/>one at a time]\n    Q -->|Qt timer GUI / daemon console| P[pump thread]\n    S -->|execute_task| T[ScriptRunner<br/>one thread per task]\n    T -->|O.run| Y[YADE C++ sim loop]\n    Y -.->|PyRunner callback| I[interrupt check]\n    S -.->|doorbells| C\n```\n\n- **HTTP + SSE server (background thread).** A threaded HTTP server takes\n  `POST /<command>` request/response calls and serves one long-lived\n  `GET /events` SSE stream. It hands work off rather than touching YADE\n  directly, so lightweight calls (status, interrupt) stay responsive even\n  while a long task runs.\n- **execute_code pump.** `execute_code` submissions are serialized through\n  a queue …","publisher":null,"homepage":null,"repository":null,"version":"0.10.0","license":"MIT","protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:yade-mcp-bridge","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.825,"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":"yade-mcp-bridge","registry":"pypi","observedAt":"2026-09-10T16:24:23.573Z","publishedAt":"2026-07-05T16:49:36.481504Z","latestVersion":"0.10.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"yade-mcp-bridge","url":"https://pypi.org/project/yade-mcp-bridge/","firstSeenAt":"2026-09-10T16:23:07.430Z","fetchedAt":"2026-09-10T16:23:07.430Z","normalizedAt":"2026-09-10T16:23:07.430Z"}]},"firstSeenAt":"2026-09-10T16:23:07.430Z","updatedAt":"2026-09-10T16:24:23.573Z"}