{"adoption": {"forks": 225, "observed_at": "2026-08-28T04:06:15.717857+00:00", "stars": 2114}, "canonical_url": "https://ross.abutalabs.com/products/mcp_agent_mail", "card": {"archived": false, "artifact_type": "service", "description": "Asynchronous coordination layer for AI coding agents: identities, inboxes, searchable threads, and advisory file leases over FastMCP + Git + SQLite", "domain": ["developer-tools", "self-hosted"], "enriched": true, "function": ["mcp", "message-queue", "search-engine", "developer-tools"], "health_score": 98, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["Dicklesworthstone/mcp_agent_mail"], "name": "Dicklesworthstone/mcp_agent_mail", "platform": ["python", "self-hosted", "cli"], "pushed_at": "2026-08-26T07:14:14+00:00", "repo": "Dicklesworthstone/mcp_agent_mail", "stars": 2114, "tags": ["fastmcp", "agent-coordination", "multi-agent", "file-leases", "sqlite", "git-backed", "inbox", "coding-agents", "ai-agents", "automation"], "topics": ["ai-agents", "coordination", "fastmcp", "mcp", "python"], "urls": [], "use_cases": ["coordinate multiple AI coding agents working on the same codebase", "give coding agents identities and inboxes to exchange messages", "prevent agents from overwriting each other's edits with file leases", "search and summarize conversation threads between agents", "run a directory of active agents and their activity", "let Claude Code, Codex, or Gemini CLI agents communicate asynchronously"], "what_it_is": "MCP Agent Mail is an asynchronous coordination layer for AI coding agents, exposed as an HTTP-only FastMCP server. It gives agents persistent identities, inboxes, searchable threaded messages, and advisory file reservation leases, backed by Git and SQLite.", "when_to_avoid": ["you need hard mutual-exclusion locking rather than advisory leases", "you want a fully managed cloud service rather than self-hosting", "your agents operate in isolation with no need for inter-agent messaging", "you require a non-Python or non-MCP integration environment"], "when_to_choose": ["you run multiple AI coding agents in parallel on shared repositories", "you want human-auditable, Git-backed agent communication artifacts", "you need advisory file reservations to signal change intent between agents", "you use MCP-compatible clients and want a lightweight self-hosted coordination fabric"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mcp_agent_mail", "repo": "Dicklesworthstone/mcp_agent_mail", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:53:28.352527+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8358e78d04751845d936f84003db9daabc960a8e59d24c10db8075511f74415", "fetched_at": "2026-08-28T04:06:15.717857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dicklesworthstone/mcp_agent_mail"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:53:28.352527+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8358e78d04751845d936f84003db9daabc960a8e59d24c10db8075511f74415", "fetched_at": "2026-08-28T04:06:15.717857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dicklesworthstone/mcp_agent_mail"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:53:28.352527+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8358e78d04751845d936f84003db9daabc960a8e59d24c10db8075511f74415", "fetched_at": "2026-08-28T04:06:15.717857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dicklesworthstone/mcp_agent_mail"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:53:28.352527+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8358e78d04751845d936f84003db9daabc960a8e59d24c10db8075511f74415", "fetched_at": "2026-08-28T04:06:15.717857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dicklesworthstone/mcp_agent_mail"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:53:28.352527+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8358e78d04751845d936f84003db9daabc960a8e59d24c10db8075511f74415", "fetched_at": "2026-08-28T04:06:15.717857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dicklesworthstone/mcp_agent_mail"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:53:28.352527+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8358e78d04751845d936f84003db9daabc960a8e59d24c10db8075511f74415", "fetched_at": "2026-08-28T04:06:15.717857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dicklesworthstone/mcp_agent_mail"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:15.717857+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:53:28.352527+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8358e78d04751845d936f84003db9daabc960a8e59d24c10db8075511f74415", "fetched_at": "2026-08-28T04:06:15.717857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dicklesworthstone/mcp_agent_mail"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:53:28.352527+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8358e78d04751845d936f84003db9daabc960a8e59d24c10db8075511f74415", "fetched_at": "2026-08-28T04:06:15.717857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dicklesworthstone/mcp_agent_mail"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:53:28.352527+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8358e78d04751845d936f84003db9daabc960a8e59d24c10db8075511f74415", "fetched_at": "2026-08-28T04:06:15.717857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dicklesworthstone/mcp_agent_mail"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:53:28.352527+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c8358e78d04751845d936f84003db9daabc960a8e59d24c10db8075511f74415", "fetched_at": "2026-08-28T04:06:15.717857+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Dicklesworthstone/mcp_agent_mail"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 22, "rhythm": 80}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 314, "days_push": 7, "days_rel": 139, "gap_med": 0.0, "n_releases_24m": 9}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}