{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_bye6rkg9rrks","handle":"sortie-mcp","url":"https://wellknown.network/agents/sortie-mcp","links":{"self":"https://wellknown.network/agents/sortie-mcp/record.json","html":"https://wellknown.network/agents/sortie-mcp","markdown":"https://wellknown.network/agents/sortie-mcp/record.md","api":"https://wellknown.network/api/v1/agents/sortie-mcp","status":"https://wellknown.network/api/v1/agents/sortie-mcp/status","claim":"https://wellknown.network/agents/sortie-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/sortie-mcp/claim.json","badge":"https://wellknown.network/agents/sortie-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:sortie-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"sortie-mcp","summary":"Campaign orchestration MCP server for AI agents — dependency DAGs, parallel fan-out, failure policies","description":"# sortie-mcp\n\nCampaign orchestration MCP server for AI agents — dependency DAGs, parallel\nfan-out, failure policies, and embedded notes.\n\nThink `make` for AI agent workflows, where the LLM is the planner that\ngenerates and adapts the DAG at runtime.\n\n## Install\n\n```bash\npip install sortie-mcp\n```\n\nOr with [uv](https://docs.astral.sh/uv/):\n\n```bash\nuv add sortie-mcp\n```\n\n## Quick Start\n\n### 1. Set up PostgreSQL\n\nsortie-mcp requires PostgreSQL 15+ with [pgvector](https://github.com/pgvector/pgvector).\n\n```bash\nexport DATABASE_URL=\"postgresql://user:pass@localhost:5432/mydb\"\nexport SORTIE_SCHEMA=\"sortie\"  # default\n```\n\n### 2. Run the MCP server\n\n```bash\nsortie-mcp\n# or: python -m sortie_mcp.server\n```\n\nThe server runs on stdio transport. Configure it in your MCP client:\n\n```json\n{\n  \"sortie\": {\n    \"command\": [\"sortie-mcp\"],\n    \"env\": {\n      \"DATABASE_URL\": \"postgresql://...\"\n    }\n  }\n}\n```\n\n### 3. Run the campaign runner\n\n```bash\nsortie-runner\n# or: python -m sortie_mcp.runner\n```\n\nAdd to cron for autonomous operation:\n\n```\n*/15 * * * * /path/to/venv/bin/sortie-runner\n```\n\n## Architecture\n\nOne MCP server, three perspectives:\n\n- **Coordinator** (e.g. a dispatcher agent): create, list, steer, pause/cancel campaigns\n- **Worker** (specialist agents): get context, add notes, complete/fail steps, spawn subtasks\n- **Runner** (cron): capacity-aware watchdog that dispatches ready steps and consults the planner LLM\n\n### Step Types\n\n| Type | Description |\n|------|-------------|\n| `atomic` | Single task executed by one agent |\n| `parallel_group` | Fan-out: children run concurrently |\n| `sequence` | Pipeline: each step depends on the previous |\n| `for_each` | Map: apply a template to each item in a list |\n\n### Key Features\n\n- **DAG splice** (`spawn_and_continue`): agents can split work into subtasks + continuation\n- **Branch abort** (`abort_branch`): scoped early return from an ancestor step\n- **Skip cascade**: transitive propagation through the dependency graph\n- **Priority …","publisher":{"name":"OpenClaw Contributors","url":null},"homepage":"https://github.com/retospect/sortie-mcp","repository":"https://github.com/retospect/sortie-mcp","version":"0.1.13","license":null,"protocols":["mcp"],"tags":["agents","campaign","dag","llm","mcp","orchestration"],"pricing":null,"endpoints":[{"url":"pypi:sortie-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":"content.marketing","name":"Marketing","confidence":1,"provenance":"declared"},{"slug":"automation.orchestration","name":"Agent Orchestration","confidence":1,"provenance":"declared"},{"slug":"data.database","name":"Databases","confidence":0.848,"provenance":"derived"}],"categories":["automation","content","data"],"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":"sortie-mcp","registry":"pypi","observedAt":"2026-09-10T12:23:42.227Z","publishedAt":"2026-04-06T20:33:50.104463Z","latestVersion":"0.1.13"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"sortie-mcp","url":"https://pypi.org/project/sortie-mcp/","firstSeenAt":"2026-09-10T12:22:59.714Z","fetchedAt":"2026-09-10T12:22:59.714Z","normalizedAt":"2026-09-10T12:22:59.714Z"}]},"firstSeenAt":"2026-09-10T12:22:59.714Z","updatedAt":"2026-09-10T12:23:42.227Z"}