MCP service for permissioned, structured agent-to-agent communications
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"agent-comms-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# agent-comms-mcp MCP service for **permissioned, structured agent-to-agent communications**. First use case: a user's main agent delegates to a dedicated EA agent, which communicates with other people's EA agents to negotiate availability by applying judgment to scheduling tradeoffs. Communications are scoped and structured: no free text initially. See [`docs/DESIGN.md`](docs/DESIGN.md) for the full spec (data model, permission model, message schemas). EA agent logic lives elsewhere. This repo is only the comms layer. ## Layout ``` main.py # FastMCP server, observability + scope-enforcement middleware auth.py # Okta OIDCProxy (humans) + agent-jwt JWTVerifier (agents) via MultiAuth scopes.py # TOOL_SCOPES catalog + fail-closed scope helpers identity.py # Issuer-gated JWT identity resolution (anti-impersonation guards) observability.py # structlog JSON events (tool_call, scope_denial, auth_flow, ...) providers/comms.py # Comms provider sub-server — the MCP tools (see below) models.py # SQLAlchemy 2.x async ORM models (agents, conversations, # participants, messages, audit_log — DESIGN.md §5) db.py # Async engine/session factory (DATABASE_URL, fail-fast) schemas.py # Pydantic message-payload schemas (all registered message types) state_machine.py # Conversation/participant state transitions (DESIGN.md §4, §6) service.py # Domain/service layer: membership rules, uniform denials, audit exceptions.py # Service-layer exception shapes (mapped to ToolError in providers/comms.py) migrations/ # Alembic migrations (async env.py); run `alembic upgrade head` tests/ # pytest suite (composition, scope fail-closed, domain logic, schema) ``` ## Domain layer The comms board is five Postgres tables: `agents`, `conversations`, `participants`, `messages`, `audit_log`. `messages` and `audit_log` are append-only. An agent self-pr…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.