dugubuyan/agent-nexus

πŸ€– Coding Agents🟒 Verified Active
0 Views
0 Installs

🐍 🏠 ☁️ β€” Service-boundary-aware document exchange center for coordinating heterogeneous LLM code agents. Versioned Markdown store, pub-sub notifications, diff-aware updates, and lifecycle stage tracking. Each service registers as a sub-project; agents subscribe to cross-service document changes and receive structured diffs via MCP.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "dugubuyan-agent-nexus": {
      "command": "npx",
      "args": [
        "-y",
        "dugubuyan-agent-nexus"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

AgentNexus

The coordination layer for heterogeneous LLM code agents. Let a backend agent, a frontend agent, and an infra agent β€” running on different IDEs and different models β€” stay in sync automatically, with zero hand-written glue.

License: MIT Python 3.11+ Tests DOI agent-nexus MCP server Available on CodeGuilds

An MCP server that coordinates AI code agents across service boundaries. (Not affiliated with the MIT Lincoln Laboratory project of the same name.)

[ demo GIF goes here β€” see TODO above ]


The problem

Your product isn't one codebase. It's a backend, a frontend, some infra, a test suite β€” each with its own repo, stack, and agent. When the backend changes its API, the frontend has to adapt. Today that coordination is done by humans copy-pasting specs into chat, or by hand-written CLAUDE.md / AGENTS.md files that go stale the moment the service changes.

Role-playing multi-agent frameworks (ChatDev, MetaGPT) don't help here: they assume all agents live in one simulated org, one codebase. Real systems are a mesh of independently-owned parts.

What AgentNexus does

AgentNexus coordinates agents at the service boundary β€” the unit real systems are actually built from. Each boundary registers as a sub-project, publishes versioned Markdown documents (requirements, design, API specs, config), and subscribes to the documents it depends on. When a document changes, subscribers get a diff-aware notification β€” the exact change plus the full latest content β€” so an agent can make a targeted edit without a human in the loop.

Backend Agent              AgentNexus               Frontend Agent
  (Claude Code)                                        (Cursor)
      β”‚                        β”‚                          β”‚
      │── POST /api/documents β–Άβ”‚                          β”‚
      β”‚   (api spec, v5)       │── notification ─────────▢│
      β”‚                        β”‚                          │── get_my_updates_with_context()
      β”‚                        │── diff + full content ──▢│
      β”‚                        β”‚                          │── applies targeted code change
      β”‚                        │◀──────── ack_update() ───│

Two ideas make this practical, and they're the parts worth stealing even if you never run the server:

1. Content travels out-of-band β†’ zero token cost

Coordination signals (what changed, who must react) are small and belong in the model's context. Document bodies are large and don't need to be reasoned about the moment they're written β€” they need to be stored and fetched on demand. So AgentNexus splits the two:

  • Control plane (MCP): notifications, subscriptions, queries β€” a notification carries a version number and a unified diff, enough to decide if and how to react.
  • Data plane (plain HTTP POST /api/documents): full document body, never passed as an MCP tool argument.

A document of any size costs zero model tokens on the write path. You pay tokens for coordination, not for content.

2. SDAOP β€” the service onboards the agent, not the other way around

AGENTS.md, CLAUDE.md, Cursor rules, Kiro steering β€” they all share one model: a human writes a static file, commits it, and the IDE loads it at startup. It goes stale, it drifts, and it's per-human busywork.

Service-Driven Agent Onboarding Protocol (SDAOP) flips this. The service generates and delivers client-specific onboarding at connection time. A new agent only needs the endpoint:

generate_instruction_file(project_name="my-service", project_space_id="<space_id>", client_type="kiro")
  • Emits the right artifact for the client β€” .kiro/steering/, CLAUDE.md, AGENTS.md, or .cursor/rules/ β€” plus a push-tool script with the server URL baked in.
  • Each artifact is content-hash versioned. Change a convention on the server, or move the server to a new URL, and the version bumps β€” connected workspaces detect the drift and re-onboard. No stale files, no manual notification.
  • The service is the single source of truth; the client-side file is a derived artifact that regenerates as the service evolves.

Supported clients: kiro, claude, codex, cursor.

Quick Start

# Install
pip install -e ".[dev]"

# Configure environment (copy example and fill in values)
cp .env.example .env

# Initialize database
python -m alembic upgrade head

# Start server (default: http://0.0.0.0:10086/mcp)
python src/main.py

Connect from Kiro / any MCP client:

{
  "mcpServers": {
    "agent-nexus": {
      "url": "http://localhost:10086/mcp"
    }
  }
}

First steps:

# Create a project space
create_space(name="my-project")

# Register two boundaries
register_project(name="backend-api", type="development", project_space_id="<space_id>")
register_project(name="frontend",    type="development", project_space_id="<space_id>")

# Push a document via HTTP POST (content stays out of LLM context)
# curl -X POST http://localhost:10086/api/documents -H 'Content-Type: application/json' \
#   -d '{"project_id":"<backend_id>","doc_id":"<backend_id>/api","content":"# API Spec..."}'

# Subscribe the frontend to the backend's API docs
add_subscription(subscriber_project_id="<frontend_id>", project_space_id="<space_id>", target_doc_id="<backend_id>/api")

# Frontend checks for updates (returns diff + full content)
get_my_updates_with_context(project_id="<frontend_id>")

Web Dashboard

Once the server is running, open http://localhost:10086/ in your browser to browse spaces, sub-projects, and documents, run full-text search, and use the built-in AI Chat for conversational document Q&A and service planning.

LLM configuration: AI Chat requires PLANNER_LLM_API_KEY. Set PLANNER_LLM_PROVIDER (openai or anthropic), PLANNER_LLM_MODEL, and optionally PLANNER_LLM_BASE_URL (Azure / Ollama / compatible APIs). Leave the key unset to disable AI features while keeping all browse/search functionality.

Key Features

  • Versioned document store β€” SHA-256 dedup, full version history, per-boundary namespacing
  • Publish-subscribe notifications β€” subscribe by exact doc ID or doc type
  • Diff-aware updates β€” get_my_updates_with_context returns unified diff + full content in one call
  • Control/data plane split β€” coordination over MCP, content over out-of-band HTTP (zero LLM token cost)
  • SDAOP β€” services auto-generate versioned, client-specific onboarding files for any connecting agent
  • Planner β€” a read-only, boundary-spanning observer (planner_chat, planner_plan, planner_overview) that answers cross-boundary questions no single agent can
  • MCP HTTP server β€” streamable-HTTP transport, multiple agents connect simultaneously
  • FTS5 full-text search β€” search_documents with BM25 ranking, phrase/prefix/boolean queries
  • Web Dashboard + AI Chat β€” browser UI over spaces, projects, and documents
  • 337 tests β€” unit + property-based (Hypothesis)

Out-of-Band Write Endpoint

The primary document write path. Content travels via HTTP body β€” never entering LLM context β€” so it's practical for documents of any size. Supports optional base_version for optimistic concurrency control (fast-forward check).

curl -X POST http://localhost:10086/api/documents \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "<project_id>",
    "doc_id": "<project_id>/requirement",
    "content": "# Requirements\n\nContent here..."
  }'

MCP Tools

ToolDescription
create_spaceCreate a Project Space
register_projectRegister a sub-project (boundary)
list_projectsList all sub-projects in a space
list_documentsList all documents in a sub-project
get_documentRetrieve a document (latest or specific version)
get_my_updates_with_contextGet unread notifications with diff + full content
ack_updateMark a notification as read
get_my_tasksGet pending tasks for a project
get_configGet config document for a stage
add_subscriptionAdd a subscription rule
publish_draftConfirm a draft document
generate_instruction_fileGenerate client-specific onboarding file (SDAOP)
get_project_id_by_nameLook up project_id by name
search_documentsFull-text search across documents in a space
planner_chatConversational Q&A with LLM over project documents (streaming)
planner_planGenerate service-split proposal from a description
planner_overviewGet a high-level overview of a project space

Configuration

Environment VariableDefaultDescription
AGENT_NEXUS_DB_URLsqlite:///agent_nexus.dbDatabase URL
AGENT_NEXUS_DOCS_ROOT./workspaceWorkspace root (docs live under {root}/{space_id}/docs/)
AGENT_NEXUS_HOST0.0.0.0Server bind host
AGENT_NEXUS_PORT10086Server port
AGENT_NEXUS_PUBLIC_URL(derived from host/port)Outward-facing URL baked into onboarding files; changing it bumps the SDAOP version
AGENT_NEXUS_DEFAULT_SPACE_IDdefaultDefault space ID for bootstrap imports
PLANNER_LLM_PROVIDERopenaiLLM provider for Planner AI (openai | anthropic)
PLANNER_LLM_MODEL(provider default)LLM model name
PLANNER_LLM_API_KEY(none)API key; leave empty to disable AI features
PLANNER_LLM_BASE_URL(none)Custom API endpoint for OpenAI-compatible APIs (Azure, Ollama, proxies)

Running Tests

python -m pytest tests/ -q

Paper

The accompanying research papers are in the paper/ directory:

dugubuyan. AgentNexus: A Boundary-Aware Coordination Architecture for Heterogeneous LLM Code Agents (v4). Zenodo, 2026. https://doi.org/10.5281/zenodo.21257426

License

MIT

Related MCP Servers

5dive-ai/5dive-mcp

πŸ“‡ 🏠 🍎 πŸͺŸ 🐧 - Manage a 5dive agent fleet from any MCP client: file tasks, message and inspect agents, and read the fleet digest. Thin adapter over the 5dive CLI.

πŸ€– Coding Agents0 views
agent-blueprint/mcp-server

πŸ“‡ ☁️ - 8 MCP tools for exploring and downloading AI agent blueprints. List blueprints, get summaries, download full Agent Skills directories for implementation by coding agents. Vendor-agnostic output works with any enterprise platform. Install: npx agentblueprint.

πŸ€– Coding Agents0 views
agentic-mcp-tools/owlex

🐍 🏠 🍎 πŸͺŸ 🐧 - AI council server: query CLI agents (Claude Code, Codex, Gemini, and OpenCode) in parallel with deliberation rounds

πŸ€– Coding Agents0 views
alpadalar/netops-mcp

🐍 🏠 - Comprehensive DevOps and networking MCP server providing standardized access to essential infrastructure tools. Features network monitoring, system diagnostics, automation workflows, and infrastructure management with AI-powered operational insights.

πŸ€– Coding Agents0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Active

Recent health check succeeded.

Last checked: 7/28/2026, 11:30:27 PM

Unclaimed listing (imported or pending owner verification). Claim it β†’
β˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.