MCP Servers
Model Context Protocol (MCP) servers provide tool integration for Claude Code and Claude Desktop.
Overview
MCP enables Claude to interact with external services through standardized tool interfaces. RavenmaskOS uses MCP for:
- GitLab integration - Repository access, issues, merge requests
- Linear integration - Project management, issue tracking
- GitHub integration - External repository access
- Bifrost tools - Custom AI platform tools via MCP gateway
Configuration
MCP servers are configured in ~/.claude/mcp-servers.json:
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "@smithery/cli@latest", "run", "linear", "--key", "<api-key>"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<token>"
}
}
}
}
This file is symlinked to Claude Desktop config:
ln -s ~/.claude/mcp-servers.json ~/Library/Application\ Support/Claude/claude_desktop_config.json
GitLab MCP Server (Self-Hosted)
Container: mcp-server-gitlab
Port: 9400 (internal)
Image: Custom build
Provides Claude Code access to self-hosted GitLab repositories.
Configuration
Located at ~/ravenhelm/services/mcp-server-gitlab/.env:
# GitLab Connection
GITLAB_BASE_URL=https://gitlab.ravenhelm.dev
GITLAB_API_URL=http://gitlab # Internal Docker network
GITLAB_PROJECT_PATH=ravenhelm/hlidskjalf
GITLAB_VERIFY_SSL=true
# Authentication
GITLAB_MCP_TOKEN=<gitlab-pat>
# Optional: Zitadel OAuth validation
ZITADEL_BASE_URL=https://zitadel.ravenhelm.dev
# Server Port
MCP_SERVICE_PORT=9400
Capabilities
- Repository browsing
- File read/write
- Merge request management
- Issue tracking
- Pipeline status
Linear MCP Server
Project management integration via Smithery CLI.
Setup
# Get API key from 1Password
op item get "Linear API Key" --vault ravenmask --fields credential --reveal
# Add to mcp-servers.json
{
"linear": {
"command": "npx",
"args": ["-y", "@smithery/cli@latest", "run", "linear", "--key", "<api-key>"]
}
}
Capabilities
- List/create/update issues
- Manage projects and cycles
- Team management
- Workflow states
GitHub MCP Server
External GitHub repository access.
Setup
# Uses official MCP server
{
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<token>"
}
}
}
Capabilities
- Repository access
- Issues and PRs
- File operations
- Actions workflows
Bifrost MCP Gateway
Custom MCP tools exposed through Bifrost. See [[../AI-ML-Platform/Bifrost-MCP-Gateway]] for details.
Architecture
Claude Code → MCP Protocol → Bifrost API → Tool Executors
↓
┌─────────┴─────────┐
│ │
NornsDelegateExecutor N8nWorkflowExecutor
│ │
Norns Agent n8n Workflows
Config Sync
MCP configuration syncs between machines via Claude Config:
- GitHub repo: github.com/nwalker85/claudeconfig
- Sync agent:
~/.claude/sync-agent/agent.py - n8n webhook:
https://n8n.ravenhelm.dev/webhook/claude-config-sync
Changes to ~/.claude/mcp-servers.json automatically propagate to all machines.
Adding New MCP Servers
-
Find or create server:
- Smithery Registry
- MCP Server List
- Custom implementation
-
Add to config:
# Edit config
vi ~/.claude/mcp-servers.json
# Restart Claude Code/Desktop -
Test:
# In Claude Code
> Use the <tool_name> tool to test
Troubleshooting
Server Not Loading
# Check JSON syntax
cat ~/.claude/mcp-servers.json | jq .
# Verify npx can run the server
npx -y @modelcontextprotocol/server-github --help
# Check Claude Code logs
tail -f ~/.claude/debug/*.log
Authentication Errors
- Verify API keys are valid
- Check token permissions
- Ensure network access to APIs
Connection Issues
# Test GitLab connectivity
curl -H "PRIVATE-TOKEN: <token>" https://gitlab.ravenhelm.dev/api/v4/projects
# Test Linear API
curl -H "Authorization: <key>" https://api.linear.app/graphql
See Also
- [[../AI-ML-Platform/Bifrost-MCP-Gateway]] - Custom MCP tools
- [[GitLab]] - GitLab server setup
- [[Container-Management]] - Docker operations