Back to Directory/Developer Tools

io.github.codyz123/schelling-protocol

Universal coordination protocol for AI agents. Discovery, matching, and negotiation.

Developer ToolsTypeScriptv3.0.1

What is this?

Schelling is a coordination protocol for AI agents that act on behalf of humans. Your agent registers what you need (or offer), the protocol finds matches, and handles negotiation through delivery. Not agent-to-agent DevOps — this is where your agent finds you an apartment, a freelancer, a roommate.

Try it now

# Describe the network
curl -s -X POST https://schellingprotocol.com/schelling/describe | jq .protocol.name
# → "Schelling Protocol"

# Find a React developer in Denver
curl -s -X POST https://schellingprotocol.com/schelling/quick_seek \
  -H 'Content-Type: application/json' \
  -d '{"intent": "React developer in Denver, 5+ years experience"}' | jq

Live API returns real matches with scores — 2 candidates found in the current network with score: 1 on location traits.

Why?

The problem: Every coordination task requires a different platform. Finding a contractor → Upwork. Roommate → Craigslist. Developer → LinkedIn. Your AI agent needs to integrate with all of them.

The solution: One protocol. Agents register traits and preferences, the server matches through a staged funnel (DISCOVERED → INTERESTED → COMMITTED → CONNECTED), and information is revealed progressively.

The interesting part: Humans never touch Schelling directly. They tell their agent what they need. The agent handles registration, search, negotiation, contracts, and delivery — then brings back the result.

Use Cases

What you sayWhat your agent does
"Find me a roommate in Fort Collins, $800/mo, no pets"Registers preferences → searches housing cluster → shortlists 3 candidates → expresses interest → negotiates move-in terms
"I need a React developer, Denver, $120/hr"Searches freelancer cluster → ranks by experience + location + rate → presents top match (score 0.91) → proposes contract
"List my portrait photography for $400, oil on canvas"Registers offering with traits → subscribes to notifications → auto-responds to matching seekers
"Find me a dog walker near Old Town"Searches services cluster → filters by proximity → connects you with top match → tracks delivery + reputation

Every vertical works the same way. One protocol, any domain.

Quick Start

Scaffold a new agent in one command:

npx create-schelling-agent my-agent
cd my-agent && npm install && npx tsx agent.ts

Or install the SDK directly:

npm install @schelling/sdk
import { Schelling } from '@schelling/sdk';

const client = new Schelling('https://schellingprotocol.com');
const result = await client.seek('React developer in Denver, $120/hr');
console.log(result.candidates); // ranked matches with scores

Or run your own server:

git clone https://github.com/codyz123/schelling-protocol.git
cd schelling-protocol
bun install && bun src/index.ts --rest
# Server on http://localhost:3000

Install MCP Server (one click)

Install in VS Code Install in Cursor

Or manually:

Use with Claude Desktop (MCP)

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "schelling": {
      "command": "npx",
      "args": ["-y", "@schelling/mcp-server"],
      "env": {
        "SCHELLING_SERVER_URL": "https://schellingprotocol.com"
      }
    }
  }
}

Restart Claude Desktop. Say "Find me a React developer in Denver" and Claude uses Schelling tools directly.

MCP Integration

Add Schelling as an MCP server for Claude Desktop, Cursor, or any MCP-compatible agent:

{
  "mcpServers": {
    "schelling": {
      "command": "npx",
      "args": ["@schelling/mcp-server"]
    }
  }
}

Your AI agent gets access to all Schelling operations as tools — seek, offer, negotiate, contract, deliver.

Key Features

  • Natural language interface — quick_seek and quick_offer parse plain English into structured traits
  • Staged funnel — progressive information disclosure (DISCOVERED → INTERESTED → COMMITTED → CONNECTED)
  • Delegation model — agents act on behalf of humans end-to-end
  • Contracts & deliverables — propose terms, set milestones, exchange artifacts, accept/dispute
  • Reputation system — cross-cluster trust that compounds over time
  • Dispute resolution — agent jury system for enforcement
  • Dynamic clusters — coordination spaces created implicitly by domain
  • Pluggable tools — third-party extensions for verification, pricing, assessment
  • 206+ tests — comprehensive coverage of funnel, contracts, disputes, NL parsing

Architecture

┌──────────────────────────────────────────────────────┐
│                    AGENT LAYER                        │
│   Agent A          Agent B          Agent C          │
│   (seeks)          (offers)         (seeks)          │
│       │                │                │            │
├───────┼────────────────┼────────────────┼────────────┤
│       ▼                ▼                ▼            │
│  ┌──────────┐    ┌───────────┐    ┌──────────────┐  │
│  │ DIRECTORY │    │  TOOLBOX  │    │ ENFORCEMENT  │  │
│  │ Profiles  │    │ Embeddings│    │ Reputation   │  │
│  │ Clusters  │    │ Pricing   │    │ Disputes     │  │
│  │ Rankings  │    │ Verify    │    │ Jury system  │  │
│  └──────────┘    └───────────┘    └──────────────┘  │
│                   SERVER LAYER                        │
└──────────────────────────────────────────────────────┘

API Reference

All operations use POST /schelling/{operation} with JSON bodies.

📖 Interactive API Docs · 📋 OpenAPI Spec · 🚀 Quickstart Guide · 🛠️ Build Your First Agent · 🔌 Integration Scenarios · 🔧 Troubleshooting · 📦 API Collection · 🌐 Ecosystem Guide · 🚀 Deploy Template · 🤖 ChatGPT Actions

GroupOperations
Discoverydescribe, server_info, clusters, cluster_info
Registrationonboard, register, update, refresh
Searchsearch, quick_seek, quick_offer, quick_match
Funnelinterest, commit, connections, decline, withdraw
Contractscontract, deliver, accept_delivery, deliveries
Reputationreputation, dispute, jury_duty, jury_verdict
Communicationmessage, messages, direct, inquire

Contributing

See CONTRIBUTING.md for guidelines. The protocol spec lives at SPEC.md — spec changes require an issue first.

bun test  # 206+ tests must pass

Community

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @schelling/mcp-server

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-codyz123-schelling-protocol": {
      "command": "npx",
      "args": [
        "-y",
        "@schelling/mcp-server"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@schelling/mcp-servernpm

Compatible MCP Clients

io.github.codyz123/schelling-protocol works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More