Stigmergent
Multi-agent coordination platform using stigmergic intelligence. Agents coordinate through a shared blackboard -- not through each other -- the same way ant colonies organize millions of workers without a manager.
Five reference agents handle daily business operations: email triage, calendar management, project tracking, meeting prep, and daily briefings. The blackboard protocol is the real product -- agents are the proof it works.
Quickstart
Option 1: MCP Server (connect to running agents)
pip install stigmergent-mcp
Configure your agent URLs:
export CSI_CHIEF_URL=https://your-chief-agent.azurecontainerapps.io
export CSI_COMMS_URL=https://your-comms-agent.azurecontainerapps.io
export CSI_OPS_URL=https://your-ops-agent.azurecontainerapps.io
export CSI_SCHEDULE_URL=https://your-schedule-agent.azurecontainerapps.io
export CSI_KNOWLEDGE_URL=https://your-knowledge-agent.azurecontainerapps.io
Add to Claude Code:
{
"mcpServers": {
"stigmergent": {
"command": "stigmergent-mcp",
"env": {
"CSI_CHIEF_URL": "https://your-chief-agent.azurecontainerapps.io",
"CSI_COMMS_URL": "https://your-comms-agent.azurecontainerapps.io",
"CSI_OPS_URL": "https://your-ops-agent.azurecontainerapps.io",
"CSI_SCHEDULE_URL": "https://your-schedule-agent.azurecontainerapps.io",
"CSI_KNOWLEDGE_URL": "https://your-knowledge-agent.azurecontainerapps.io"
}
}
}
}
Option 2: Full Local Stack (agents + blackboard)
git clone https://github.com/CSI-Platform/stigmergent.git
cd stigmergent
cp .env.template .env
# Fill in your M365 credentials and Anthropic API key
docker-compose up
This starts all 5 agents locally on ports 8001-8005.
What Each Agent Does
| Agent | Port | Role |
|---|---|---|
| Communications Specialist | 8001 | Email triage, drafting, commitment scanning, client pulse |
| Operations Manager | 8002 | Project tracking, action items, accountability checks |
| Knowledge Curator | 8003 | Meeting prep, transcript processing, knowledge retrieval |
| Schedule Coordinator | 8004 | Calendar management, availability, scheduling |
| Chief of Staff | 8005 | Morning briefings, delegation, aggregation |
MCP Tools
The MCP server exposes 9 tools:
| Tool | Description |
|---|---|
morning_briefing |
Daily briefing -- calendar, projects, blackboard alerts |
triage_emails |
Classify and prioritize recent emails |
draft_email |
Draft a professional email from instructions |
check_calendar |
Show upcoming events |
schedule_meeting |
Create calendar events from natural language |
list_projects |
Active projects with status and chase dates |
accountability_check |
Scan for overdue items and stale projects |
scan_commitments |
Find open commitments in sent mail |
prep_meeting |
Build context and talking points for meetings |
How It Works
You (Claude Code / any MCP client)
|
v
MCP Server (stigmergent-mcp)
|
v A2A JSON-RPC
+-------+-------+-----+-------+------+
| Chief | Comms | Ops | Sched | Know | <-- Agents (Docker / Azure)
+-------+-------+-----+-------+------+
| | |
v v v
Dataverse Graph API SharePoint
(Blackboard) (Mail/Cal) (Projects)
Stigmergic coordination: Agents write entries to the blackboard (Dataverse). Other agents sense those entries and act. The Communications Specialist writes a Classification entry; the Operations Manager reads it during an accountability check. No direct messaging needed for routine coordination.
Peer delegation: For complex tasks, agents call each other via A2A protocol. Ops asks Comms to draft follow-up emails. Comms asks Knowledge for context before drafting.
LLM-first routing: Each agent uses Claude Haiku for fast intent classification with keyword fallback. Novel phrasing gets routed correctly without brittle pattern matching.
Configuration
Copy .env.template to .env and fill in:
| Variable | Required | Description |
|---|---|---|
CSI_TENANT_ID |
Yes | Azure AD tenant ID |
CSI_CLIENT_ID |
Yes | App registration client ID |
CSI_CLIENT_SECRET |
Yes | App registration client secret |
CSI_DATAVERSE_URL |
Yes | Dataverse environment URL |
CSI_SHAREPOINT_HOST |
Yes | SharePoint host domain |
CSI_SHAREPOINT_SITE_PATH |
Yes | SharePoint site path |
CSI_USER_EMAIL |
Yes | User email for Graph API calls |
ANTHROPIC_API_KEY |
Yes | Anthropic API key for LLM |
CSI_LLM_MODEL |
No | Main model (default: claude-sonnet-4-6) |
CSI_LLM_ROUTER_MODEL |
No | Router model (default: claude-haiku-4-5-20251001) |
TZ |
No | Timezone (default: America/Phoenix) |
Prerequisites
- Microsoft 365 tenant with Outlook, Calendar, SharePoint
- Azure AD app registration with Graph API permissions (Mail.Read, Calendars.ReadWrite, Sites.ReadWrite.All)
- Dataverse environment with the blackboard table provisioned
- Anthropic API key for Claude
- Docker for running agents locally
- Python 3.13+ for the MCP server
Blackboard Protocol
The blackboard is the coordination surface. Agents write entries with:
- Entry type (Classification, ActionRequired, AccountabilityAlert, ClientPulse, etc.)
- Status lifecycle (New -> Read -> Acted -> Expired)
- Priority (Low, Normal, High, Urgent)
- Source agent identity
- Payload (flexible JSON)
Any A2A-compliant agent can participate by reading and writing blackboard entries. The protocol spec: extensions/blackboard/extension-spec.yaml
Project Structure
stigmergent/
agents/
chief-of-staff/ # Briefings, delegation, aggregation
communications-specialist/ # Email, commitments, client pulse
operations-manager/ # Projects, action items, accountability
knowledge-curator/ # Meeting prep, knowledge management
schedule-coordinator/ # Calendar, scheduling, availability
csi-core/ # Shared library (auth, blackboard, Graph, LLM, router)
mcp-server/ # MCP server (9 tools, stdio transport)
extensions/ # Blackboard protocol spec
docker-compose.yml # Local development stack
Building Your Own Agent
Any Python A2A server can participate in Stigmergent coordination by reading and writing blackboard entries. The key contract: write entries to announce what you've done or discovered. Read entries to sense what other agents have done. The blackboard handles the coordination -- you just participate.
License
Apache License 2.0. See LICENSE for the full text.
Built by Copper State Intelligence.
Metadata
Release files for stigmergent-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| stigmergent_mcp-0.1.0.tar.gz | 6.5 kB | Without provenance | Details for stigmergent_mcp-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| stigmergent_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for stigmergent_mcp-0.1.0-py3-none-any.whl |
Total release size: 18.1 kB
Release files / stigmergent_mcp-0.1.0.tar.gz
| Download URL | stigmergent_mcp-0.1.0.tar.gz |
|---|---|
| Size | 6.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09ba33e1c4b4d010bd529d234f69d793607d3a7e4419fa7d7137c9b700894542
|
|
BLAKE2b-256 checksum How to use checksums |
ef6d101ccd03be208ac0ccf468108085abe9f7bac20615cfd9a8352693ba4cab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / stigmergent_mcp-0.1.0-py3-none-any.whl
| Download URL | stigmergent_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a554c79d40c3ff934ffec86f5809888168aff372ec0a972ff350915dcb5c6b08
|
|
BLAKE2b-256 checksum How to use checksums |
b76e6d67b343a8ea4c97ed4ae48a1c4a31534a35f2a8aaf744c504bc5ed60eaf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Security for stigmergent-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.