svrnty-mcp-server/QUICK-START.md
Svrnty 0c27de4162 refactor: rename OpenHarbor.MCP to Svrnty.MCP across all libraries
- Renamed all directories: OpenHarbor.MCP.* → Svrnty.MCP.*
- Updated all namespaces in 179 C# files
- Renamed 20 .csproj files and 3 .sln files
- Updated 193 documentation references
- Updated 33 references in main CODEX codebase
- Updated Codex.sln with new paths
- Build verified: 0 errors

Preparing for extraction to standalone repositories.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 21:04:17 -04:00

269 lines
6.1 KiB
Markdown

# CODEX MCP Server - Quick Start
**Get your CODEX knowledge base connected via HTTP in 2 minutes.**
## TL;DR
```bash
# 1. Start CODEX API
cd /home/svrnty/codex/CODEX
dotnet run --project src/Codex.Api
# Listens on http://localhost:5099
# 2. Start CODEX MCP Server (HTTP mode)
cd /home/svrnty/codex/Svrnty.MCP.Server
dotnet run --project samples/CodexMcpServer
# Listens on http://localhost:5050
# 3. Test the server
curl http://localhost:5050/health
# 4. List available tools
curl -X POST http://localhost:5050/mcp/invoke \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":"1"}'
```
## What You Get
6 tools accessible via HTTP for interacting with your CODEX knowledge base:
1. **search_codex** - Semantic search across all documents
2. **get_document** - Retrieve specific document by ID
3. **list_documents** - Browse all documents with pagination
4. **search_by_tag** - Filter by tags
5. **get_document_sections** - Get structured sections
6. **list_tags** - View all available tags
## HTTP Endpoints
**Base URL**: `http://localhost:5050`
- `POST /mcp/invoke` - Main MCP JSON-RPC endpoint
- `GET /health` - Health check endpoint
## Example Tool Calls
Once the server is running, you can call tools via HTTP:
### Search CODEX
```bash
curl -X POST http://localhost:5050/mcp/invoke \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"id": "1",
"params": {
"name": "search_codex",
"arguments": {
"query": "neural networks",
"maxResults": 5
}
}
}'
```
### Get Document
```bash
curl -X POST http://localhost:5050/mcp/invoke \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"id": "2",
"params": {
"name": "get_document",
"arguments": {
"documentId": "abc123"
}
}
}'
```
### List Tags
```bash
curl -X POST http://localhost:5050/mcp/invoke \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": "3"
}'
```
## Architecture (HTTP Mode)
```
┌─────────────────┐
│ MCP Client │
│ (App/Gateway) │
└────────┬────────┘
│ HTTP POST
│ (JSON-RPC 2.0)
┌─────────────────┐
│ CODEX MCP Server│
│ (6 tools) │
│ Port 5050 │
└────────┬────────┘
│ HTTP REST
┌─────────────────┐
│ CODEX API │
│ Port 5099 │
└─────────────────┘
```
## Requirements
- .NET 8.0 SDK
- CODEX API running at `http://localhost:5099` (for real data)
## Using with MCP Gateway
For production deployments with load balancing and multiple clients:
```bash
# Terminal 1: Start CODEX API
cd /home/svrnty/codex/CODEX
dotnet run --project src/Codex.Api
# Terminal 2: Start CODEX MCP Server
cd /home/svrnty/codex/Svrnty.MCP.Server
dotnet run --project samples/CodexMcpServer
# Terminal 3: Start MCP Gateway
cd /home/svrnty/codex/Svrnty.MCP.Gateway
dotnet run --project samples/CodexMcpGateway
# Gateway listens on http://localhost:8080
# Routes requests to http://localhost:5050
```
See [Svrnty.MCP.Gateway](../Svrnty.MCP.Gateway/README.md) for gateway configuration.
## Troubleshooting
### Health check fails
**Solution:** Verify the server is running:
```bash
curl -v http://localhost:5050/health
```
Expected response:
```json
{"status":"Healthy","service":"MCP Server","timestamp":"..."}
```
### Connection refused errors when using tools
**Solution:** Start CODEX API:
```bash
cd /home/svrnty/codex/CODEX
dotnet run --project src/Codex.Api
```
Verify it's running:
```bash
curl http://localhost:5099/health
```
### Port already in use
**Solution:** Check what's using port 5050:
```bash
lsof -i :5050
```
Stop the conflicting process or configure a different port in `appsettings.json`.
## Testing Without CODEX API
The MCP server works even if CODEX API isn't running - it will return proper error messages:
```bash
curl -X POST http://localhost:5050/mcp/invoke \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":"1"}'
```
**Expected:** JSON listing all 6 tools (even without CODEX API running)
## Configuration
Edit `samples/CodexMcpServer/appsettings.json`:
```json
{
"Mcp": {
"Transport": {
"Type": "Http",
"Port": 5050
},
"Codex": {
"ApiBaseUrl": "http://localhost:5099"
}
}
}
```
## Next Steps
1. **Full integration guide:** See [INTEGRATION-GUIDE.md](INTEGRATION-GUIDE.md)
2. **Architecture details:** See [README.md](README.md)
3. **Gateway setup:** See [Svrnty.MCP.Gateway](../Svrnty.MCP.Gateway/README.md)
4. **Development:** See [docs/module-design.md](docs/module-design.md)
---
## Legacy Support: Claude Desktop (Stdio Mode)
For local Claude Desktop integration, stdio mode is still available:
```bash
# Run in stdio mode
dotnet run --project samples/CodexMcpServer -- --stdio
```
**Claude Desktop Configuration** (`~/.claude/config.json`):
```json
{
"mcpServers": {
"codex": {
"command": "dotnet",
"args": [
"run",
"--project",
"/home/svrnty/codex/Svrnty.MCP.Server/samples/CodexMcpServer/CodexMcpServer.csproj",
"--",
"--stdio"
],
"transport": "stdio"
}
}
}
```
**Note**: HTTP mode is recommended for production deployments. Stdio mode is for local development and Claude Desktop integration only.
---
## Files Reference
| File | Purpose |
|------|---------|
| `QUICK-START.md` | This file (2-minute HTTP setup) |
| `INTEGRATION-GUIDE.md` | Detailed integration patterns |
| `README.md` | Complete documentation |
| `HTTP-TRANSPORT-STANDARDIZATION.md` | HTTP architecture guide |
## Support
- Issues: [GitHub Issues](https://github.com/yourusername/Svrnty.MCP/issues)
- MCP Spec: [modelcontextprotocol.io](https://modelcontextprotocol.io)
- HTTP Transport Guide: See `HTTP-TRANSPORT-STANDARDIZATION.md`