← Back to Agent-to-Agent Protocols
Agent-to-Agent Protocols by @tyronemichael

civic-nexus

Connect to Civic Nexus MCP for 100+ integrations

0
Source Code

Civic Nexus MCP Bridge

⚠️ DISCLAIMER: Use at your own risk. For official documentation, visit docs.civic.com.

Connect to Civic Nexus for 100+ integrations including Gmail, PostgreSQL, MongoDB, Box, and more.

Setup

1. Get your Nexus credentials

  1. Go to nexus.civic.com and sign in
  2. Get your MCP URL and access token from your profile settings

2. Configure in OpenClaw

Add to ~/.openclaw/openclaw.json:

{
  "skills": {
    "entries": {
      "civic-nexus": {
        "enabled": true,
        "env": {
          "NEXUS_URL": "https://nexus.civic.com/hub/mcp?accountId=YOUR_ACCOUNT_ID&profile=YOUR_PROFILE",
          "NEXUS_TOKEN": "your-access-token"
        }
      }
    }
  }
}

3. (Optional) Configure mcporter

If you have mcporter installed (npm install -g mcporter), add to ~/.openclaw/workspace/config/mcporter.json:

{
  "mcpServers": {
    "nexus": {
      "baseUrl": "https://nexus.civic.com/hub/mcp?accountId=YOUR_ACCOUNT_ID&profile=YOUR_PROFILE",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN",
        "User-Agent": "openclaw/1.0.0"
      }
    }
  }
}

Instructions for the Agent

When the user asks to interact with external services through Nexus, try mcporter first. If it fails, fall back to the TypeScript script.

Using mcporter

# List tools
mcporter list nexus

# Search tools
mcporter list nexus | grep gmail

# Call a tool
mcporter call 'nexus.google-gmail-search_gmail_messages(query: "is:unread")'

Fallback: TypeScript script

# List tools
npx tsx {baseDir}/nexus-tool-runner.ts --list

# Search tools
npx tsx {baseDir}/nexus-tool-runner.ts --search gmail

# Get tool schema
npx tsx {baseDir}/nexus-tool-runner.ts --schema google-gmail-search_gmail_messages

# Call a tool
npx tsx {baseDir}/nexus-tool-runner.ts --call google-gmail-search_gmail_messages --args '{"query": "is:unread"}'

Authorization flows

Some tools require OAuth on first use. When you see an authorization URL:

  1. Show the URL to the user
  2. After they authorize, continue:
    # mcporter
    mcporter call 'nexus.continue_job(jobId: "JOB_ID")'
    
    # script
    npx tsx {baseDir}/nexus-tool-runner.ts --call continue_job --args '{"job_id": "JOB_ID"}'
    

Notes

  • API calls can take 10-15 seconds (server-side latency)
  • Tokens expire after ~30 days — regenerate from Nexus if needed
  • Gmail batch requests limited to 5-25 messages per call