Features: - Direct conversations (1-to-1) auto-created and permanent - Group conversations with leave/archive support - Real-time messaging via long-polling - Offline notifications via CLAUDE.md - Auto-registration on MCP startup Architecture: - Broker: Express HTTP server + SQLite - MCP Partner: Modular tools (one file per tool) - Full documentation and API reference
1.6 KiB
1.6 KiB
Contributing to MCP Claude Duo
Thanks for your interest in contributing!
Getting Started
- Fork the repository
- Clone your fork
- Install dependencies:
npm install - Start the broker:
npm run broker
Development
Project Structure
mcp-claude-duo/
├── broker/ # HTTP server + SQLite
│ ├── index.js # Express routes
│ └── db.js # Database layer
├── mcp-partner/ # MCP server for Claude Code
│ ├── index.js # Entry point
│ ├── shared.js # Shared utilities
│ └── tools/ # One file per MCP tool
└── docs/ # Documentation
Adding a New Tool
- Create a new file in
mcp-partner/tools/ - Export
definition(tool schema) andhandler(async function) - Import and register in
mcp-partner/index.js
Example:
import { brokerFetch, myId, ensureRegistered } from "../shared.js";
export const definition = {
name: "my_tool",
description: "Description of my tool",
inputSchema: {
type: "object",
properties: {
param: { type: "string", description: "A parameter" }
},
required: ["param"]
}
};
export async function handler(args) {
await ensureRegistered();
// Your logic here
return {
content: [{ type: "text", text: "Result" }]
};
}
Testing
# Start broker
npm run broker
# Test with curl
curl http://localhost:3210/health
Pull Requests
- Create a feature branch
- Make your changes
- Test locally
- Submit a PR with a clear description
Issues
Feel free to open issues for bugs, feature requests, or questions.