Skip to main content

What is MCP Integration?

Model Context Protocol (MCP) is an open protocol that allows AI assistants to connect with external tools and data sources. NOFire AI’s MCP integration brings complete production Knowledge directly into your development environment. With MCP, you can: Shift-Left (Before Deployment):
  • Assess deployment risk before merging code
  • Analyze blast radius of your changes
  • Identify critical services affected by your work
  • Get deployment strategy recommendations
Production Knowledge (Anytime):
  • Query production environment in natural language
  • Understand service dependencies and relationships
  • See what changed recently in any service
  • Investigate production behavior and incidents
  • Onboard new engineers by making production knowledge accessible
No dashboard switching. No context loss. All from your IDE.

Supported IDEs

NOFire AI MCP integration works with:

Cursor

Full integration with AI-powered code editor

Claude Desktop

Direct integration with Anthropic’s Claude Desktop app

MCP-Compatible Tools

Any tool supporting Model Context Protocol

Prerequisites

Before setting up MCP integration, ensure you have:
1

NOFire AI Account

You need a NOFire AI account with connected infrastructure
2

Data Sources Connected

Connect your observability stack (Grafana, Prometheus, Datadog) OR deploy the NOFire AI Kubernetes agent to build the knowledge graphSetup guide
3

MCP API Token

Generate an MCP-specific API token from your NOFire AI dashboardAPI token guide
4

MCP-Compatible IDE

Install Cursor, Claude Desktop, or another MCP-compatible tool

Installation

Cursor Setup

1

Open Cursor Settings

There are two ways to configure MCP in Cursor:Option 1: Via Cursor Settings UI
  1. Open Cursor Settings (Cmd/Ctrl + ,)
  2. Search for “MCP” in the settings search bar
  3. Look for “Model Context Protocol” section
  4. Click “Edit in mcp.json” or “Configure”
Option 2: Edit Config File DirectlyNavigate to the MCP configuration file:
  • macOS: ~/.cursor/mcp.json
  • Linux: ~/.cursor/mcp.json
  • Windows: %APPDATA%\.cursor\mcp.json
If the file doesn’t exist, create it.
2

Add NOFire AI Configuration

Add the following configuration to your mcp.json file:
{
  "mcpServers": {
    "NOFireAI": {
      "url": "https://mcp.nofire.ai",
      "transport": "http",
      "headers": {
        "X-API-Key": "your-mcp-api-key-here"
      }
    }
  }
}
If you already have other MCP servers configured, add NOFire AI to the existing mcpServers object:
{
  "mcpServers": {
    "existing-server": {
      "url": "...",
      "transport": "..."
    },
    "NOFireAI": {
      "url": "https://mcp.nofire.ai",
      "transport": "http",
      "headers": {
        "X-API-Key": "your-mcp-api-key-here"
      }
    }
  }
}
Important: Replace your-mcp-api-key-here with your actual MCP API token from the NOFire AI dashboard.Generate your API token →
3

Save and Restart Cursor

  1. Save the mcp.json file
  2. Completely quit Cursor (File → Quit or Cmd/Ctrl + Q)
  3. Restart Cursor
A simple window reload is not enough - you must fully quit and restart Cursor for MCP changes to take effect.
4

Verify NOFire AI is Connected

In Cursor’s AI chat panel, you should see MCP servers listed. Verify NOFire AI appears.Test the connection:Ask Cursor:
Use NOFire AI to discover services in my cluster
Or:
What's the deployment risk for my current changes using NOFire AI?
Expected behavior:
  • Cursor will call NOFire AI MCP server
  • You’ll see results about your services or deployment risk
  • If there’s an error, check the troubleshooting section below

Cursor Settings Tips

Check MCP Status
  • Look for the MCP icon in Cursor’s status bar (bottom of window)
  • Click it to see which MCP servers are active
  • NOFire AI should appear in the list with a green indicator
Enable Detailed Logging To debug connection issues, enable verbose logging in Cursor settings:
  1. Open Settings → Advanced
  2. Enable “Developer Mode” or “Debug Logging”
  3. Check logs in Cursor’s developer console

Claude Desktop Setup

1

Locate Claude Desktop Config File

Find and open Claude Desktop’s MCP configuration file:macOS:
# Open in default text editor
open ~/Library/Application\ Support/Claude/claude_desktop_config.json

# Or edit with nano
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows:
# Open in Notepad
notepad %APPDATA%\Claude\claude_desktop_config.json
Linux:
# Open with your preferred editor
nano ~/.config/Claude/claude_desktop_config.json
If the file doesn’t exist, create it with an empty JSON object:
{
  "mcpServers": {}
}
2

Add NOFire AI Configuration

Add NOFire AI to the mcpServers section:If starting fresh:
{
  "mcpServers": {
    "NOFireAI": {
      "url": "https://mcp.nofire.ai",
      "transport": "http",
      "headers": {
        "X-API-Key": "your-mcp-api-key-here"
      }
    }
  }
}
If you have existing servers:
{
  "mcpServers": {
    "existing-server": {
      "command": "...",
      "args": [...]
    },
    "NOFireAI": {
      "url": "https://mcp.nofire.ai",
      "transport": "http",
      "headers": {
        "X-API-Key": "your-mcp-api-key-here"
      }
    }
  }
}
Important: Replace your-mcp-api-key-here with your actual MCP API token.Generate your API token →
3

Validate JSON Syntax

Before saving, ensure your JSON is valid:
  • Check that all brackets {} and braces [] are closed
  • Ensure commas between properties (but not after the last one)
  • All strings must be in double quotes ""
Use a JSON validator if needed:
# On macOS/Linux, validate with Python
python3 -m json.tool ~/Library/Application\ Support/Claude/claude_desktop_config.json
4

Save and Restart Claude Desktop

  1. Save the configuration file
  2. Completely quit Claude Desktop:
    • macOS: Claude → Quit Claude (or Cmd + Q)
    • Windows: File → Exit
    • Linux: File → Quit
  3. Restart Claude Desktop
Claude Desktop only reads the config file on startup. A full restart is required.
5

Verify NOFire AI is Available

In a new conversation with Claude, you should see MCP tools available.Test the connection:Ask Claude:
Can you use NOFire AI to discover services in my cluster?
Or:
Using NOFire AI, what's the deployment risk for changes to payment-service?
Expected behavior:
  • Claude will indicate it’s using NOFire AI tools
  • You’ll see results from your production environment
  • If there’s an error, see troubleshooting below

Claude Desktop Settings Tips

Check MCP Status
  • Claude shows available tools at the bottom of the chat interface
  • Look for indicators that NOFire AI tools are loaded
  • If not visible, check the developer console for errors
Enable Developer Tools To debug issues:
  1. Open Claude Desktop Settings
  2. Look for “Developer” or “Advanced” options
  3. Enable developer tools/console
  4. Check for any MCP-related errors
File Permissions Ensure the config file has proper permissions:
# macOS/Linux - make sure you own the file
chmod 644 ~/Library/Application\ Support/Claude/claude_desktop_config.json

Available Commands

Once configured, you can use these NOFire AI capabilities in your IDE:

Shift-Left / Proactive Reliability

Get deployment risk analysis for your changes:Example:
What's the deployment risk for my current changes to payment-service?
Response:
Change Impact Assessment:

payment-service:
  Risk Score: 0.82 (HIGH)
  Risk Level: high
  
  Risk Factors:
    - Blast Radius: 0.85 (15 services affected)
    - Dependency Depth: 0.60 (entry point service)
    - Critical Path: Yes
    - Stability: 0.70
  
  Recommendations:
    ✓ Deploy to staging first (MANDATORY)
    ✓ Use canary deployment (5% traffic)
    ✓ Notify #payments team
    ✓ Extended monitoring (2 hours)
  
  Affected Services: 15 total
    Critical: api-gateway, billing-service
    Downstream: 13 others
Understand cascading impact of service failures:Example:
What's the blast radius if payment-service fails?
Response:
Blast Radius Analysis:

Total Affected: 15 services
Blast Radius Score: 0.85 (HIGH)

Direct Impact (1 hop):
  - api-gateway
  - billing-service
  - notification-service
  - audit-service

Transitive Impact (2-3 hops):
  - user-service
  - analytics-service
  - reporting-service
  - ... 8 more services
List services that require extra care:Example:
Show me critical services related to auth-service
Response:
Critical Services in auth-service subgraph:

1. api-gateway
   Criticality: 0.95
   Affects: 24 services
   Reason: Entry point for all traffic

2. auth-service (current)
   Criticality: 0.90
   Affects: 18 services
   Reason: Authentication for all services

3. user-service
   Criticality: 0.75
   Affects: 12 services
   Reason: Core user data dependency

Incident Response & RCA

Find services, pods, deployments in your cluster:Example:
Show me all services with "payment" in the name
View recent changes for a service:Example:
What changed in payment-service in the last 6 hours?
Get AI-powered root cause hypotheses:Example:
Analyze what caused the payment-service incident at 10am today
Explore service dependencies:Example:
What services does payment-service depend on?

Usage Examples

Pre-Merge Risk Assessment

Scenario: You’ve modified payment processing code and want to assess risk before creating a PR. In Cursor:
I've modified these files:
- src/services/payment/stripe-client.ts
- src/services/payment/processor.ts
- src/api/payment-routes.ts

Can you assess the deployment risk using NOFire AI?
Cursor Response:
I've analyzed your changes using NOFire AI:

Affected Services: 1 (payment-service)

Risk Assessment:
  Overall Risk: 0.82 (HIGH)
  
  Risk Breakdown:
    - Blast Radius: 0.85 (15 services affected)
    - Payment processing is on critical path
    - Dependency depth: 2 (mid-level service)
    - Recent stability: 0.70
  
  Deployment Strategy:
    ⚠️  HIGH RISK - Staged deployment mandatory
    
    1. Deploy to staging environment first
    2. Run full payment test suite
    3. Deploy to production with canary (5% traffic)
    4. Monitor for 2 hours before full rollout
    5. Notify #payments and #platform teams
    
  Critical Services in Blast Radius:
    - api-gateway (entry point)
    - billing-service (financial impact)
    - refund-service (payment flow)
    
  Recommendation: Schedule deployment during low-traffic window
  with team available for monitoring.

Onboarding New Engineers

Scenario: New team member needs to understand the production architecture. In Cursor:
I'm new to this codebase. Can you use NOFire AI to show me:
1. What services we have in production
2. How the payment flow works (service dependencies)
Cursor Response:
I've queried NOFire AI about your production environment:

Services in Production (showing payment-related):
  - api-gateway (entry point for all traffic)
  - payment-service (core payment processing)
  - billing-service (invoicing and subscriptions)
  - stripe-integration-service (payment provider)
  - notification-service (payment confirmations)
  - audit-service (transaction logging)

Payment Flow Dependencies:
  
  api-gateway
    ↓ calls
  payment-service
    ↓ depends on
    ├─ stripe-integration-service (payment processing)
    ├─ billing-service (invoice creation)
    ├─ notification-service (customer emails)
    └─ audit-service (compliance logging)

Critical Services to be careful with:
  - payment-service: 15 services depend on this
  - api-gateway: Entry point, affects all traffic
  
Would you like me to explain what each service does or show
recent changes to any of them?

Investigating Production Behavior

Scenario: A service has been flaky, you want to understand what changed. In Claude Desktop:
Using NOFire AI, what changes happened to user-service 
in the last 24 hours?
Claude Response:
I've queried NOFire AI for recent changes to user-service:

Recent Changes (last 24 hours):
  
  1. Deployment (14 hours ago)
     - Image: user-service:v2.1.4 → v2.1.5
     - Type: Rolling update
     - Status: Completed
  
  2. Configuration Change (8 hours ago)
     - ConfigMap updated: database connection pool
     - MAX_POOL_SIZE: 20 → 50
  
  3. Pod Restart (3 hours ago)
     - 2 pods restarted due to OOMKilled
     - Memory limit hit
  
  4. Scaling Event (1 hour ago)
     - Replicas: 3 → 5
     - Reason: High CPU usage

Potential Issues:
  - Memory limit may be too low after config change
  - Connection pool increase might be causing memory pressure
  - Recent scaling event suggests ongoing performance issues

Would you like me to analyze these changes for root cause?

Best Practices

Make it a habit to check deployment risk before creating or approving PRs. Takes 10 seconds, prevents hours of incident response.
New team members can ask NOFire AI about production:
  • “What services do we have in production?”
  • “How does auth-service connect to user-service?”
  • “What changed in payment-service this week?”
Makes production knowledge accessible without tribal knowledge bottlenecks.
Provide context about what you’re doing:❌ “Check risk” ✅ “I’m updating payment API error handling. What’s the deployment risk?”❌ “What changed?” ✅ “What changed in auth-service in the last 24 hours?”
When something breaks, ask NOFire AI:
  • “What changed in [service] before the incident?”
  • “Analyze [service] changes from 2 hours ago”
  • “What services depend on [broken-service]?”
Speeds up incident response by making telemetry data queryable.
When you discover critical dependencies or high-risk services, document them. Share what NOFire AI teaches you about production.

Troubleshooting

Symptoms: Commands timeout or show connection errorsFor Cursor:
  1. Check the MCP status icon in the bottom status bar
  2. Verify JSON syntax in ~/.cursor/mcp.json is valid
  3. Ensure you fully quit and restarted Cursor (not just reload)
  4. Check API token is correct and active in NOFire AI dashboard
  5. Test connectivity: curl https://mcp.nofire.ai/health
  6. Look for errors in Cursor’s developer console (Help → Toggle Developer Tools)
For Claude Desktop:
  1. Validate JSON syntax in claude_desktop_config.json
  2. Ensure file path is correct for your OS
  3. Check file permissions (should be readable)
  4. Verify API token is active in dashboard
  5. Check Claude’s developer console for error messages
  6. Try removing and re-adding the configuration
Symptoms: MCP servers not loading, IDE shows config errorsCommon mistakes:Missing comma between servers:
{
  "mcpServers": {
    "server1": {...}  // Missing comma here!
    "NOFireAI": {...}
  }
}
Correct:
{
  "mcpServers": {
    "server1": {...},
    "NOFireAI": {...}
  }
}
Validate your JSON:
  • Use an online JSON validator
  • Use command line: python3 -m json.tool yourfile.json
  • Most code editors have built-in JSON validation
Symptoms: “Invalid API token” or “Unauthorized” errorsChecklist:
  1. Copy the API token correctly (no extra spaces or line breaks)
  2. Ensure you copied the MCP key (not agent key)
  3. Verify key is active in NOFire AI dashboard
  4. Check key hasn’t been deleted or deactivated
  5. Make sure quotes are proper JSON double quotes ""
Test your API token:
curl -X POST https://mcp.nofire.ai/discover-entities \
  -H "X-API-Key: your-key-here" \
  -H "Content-Type: application/json" \
  -d '{"name": "*"}'
If this fails, regenerate your API token in the dashboard.
Symptoms: Can’t find mcp.json or claude_desktop_config.jsonSolutions:For Cursor: Create the directory and file if they don’t exist:
# macOS/Linux
mkdir -p ~/.cursor
touch ~/.cursor/mcp.json
echo '{"mcpServers":{}}' > ~/.cursor/mcp.json

# Windows (PowerShell)
New-Item -Path "$env:APPDATA\.cursor" -ItemType Directory -Force
'{"mcpServers":{}}' | Out-File "$env:APPDATA\.cursor\mcp.json"
For Claude Desktop:
# macOS
mkdir -p ~/Library/Application\ Support/Claude
echo '{"mcpServers":{}}' > ~/Library/Application\ Support/Claude/claude_desktop_config.json

# Linux
mkdir -p ~/.config/Claude
echo '{"mcpServers":{}}' > ~/.config/Claude/claude_desktop_config.json

# Windows (PowerShell)
New-Item -Path "$env:APPDATA\Claude" -ItemType Directory -Force
'{"mcpServers":{}}' | Out-File "$env:APPDATA\Claude\claude_desktop_config.json"
Symptoms: “No entities found” or empty resultsSolutions:
  1. Ensure your data sources are connected:
    • If using observability stack: Verify Grafana/Prometheus/Loki connections are active
    • If using Kubernetes agent: Ensure agent is deployed and running
  2. Wait 5-10 minutes for initial data collection and knowledge graph building
  3. If using agent: Verify it has correct cluster access
  4. Check connection logs for errors in the NOFire AI dashboard
Symptoms: Files mapped to wrong services or not mapped at allSolutions:
  1. Use repository-qualified paths (include repo name)
  2. Ensure service names match deployment labels
  3. Check if service was recently deployed (< 1 hour)
  4. Fuzzy matching requires similar naming between files and services
Symptoms: “MCP keys are read-only” errorIssue: You’re trying to perform a write operation with an MCP keySolution: MCP keys are intentionally read-only for security. Write operations (like creating new services) require agent keys through the dashboard.

Security Considerations

MCP keys are read-only by designMCP API tokens can only query and analyze data from NOFire AI. They cannot:
  • Modify your production infrastructure
  • Trigger deployments or rollbacks
  • Create or delete Kubernetes resources
  • Change system configurations
  • Execute commands in your clusters
This ensures your production environment remains completely safe even if an MCP key is compromised. The Kubernetes agent that observes your infrastructure state runs separately with its own authentication.
Learn more about API token types and permissions.

Bonus: Automate with AGENTS.md

Make NOFire AI checks automatic by adding them to your AGENTS.md file. This ensures AI coding agents always use NOFire AI for deployment risk and operational knowledge. Create or update AGENTS.md in your repository root:
# AGENTS.md

## NOFire AI MCP Integration

This project uses NOFire AI for deployment risk assessment and production Knowledge.
NOFire AI MCP server is available in your IDE.

## When to use NOFire AI

**Automatically use NOFire AI in these scenarios:**

### Before Deployment (Shift-Left)
1. **Before completing any task** - Always assess deployment risk
2. **When modifying services** - Understand which production services are affected
3. **Before suggesting a merge** - Verify it's safe to deploy
4. **On refactoring** - Check blast radius and dependency impact

### Production Knowledge (Anytime)
5. **When user asks about production** - Answer with real production data
6. **During incident investigation** - Find what changed recently
7. **For onboarding new engineers** - Help understand production architecture
8. **When debugging** - Query service dependencies and recent changes

## Required Pre-Merge Workflow

Before marking any task complete or suggesting a merge:

1. Run tests: `npm test` or `pytest`
2. **Assess deployment risk** with NOFire AI:
   ```
   Call: nofireai_assess_change_impact
   Parameters: {
     "file_paths": ["src/api/payment.ts", "src/services/billing.ts"],
     "change_description": "Updated payment error handling",
     "repo_name": "company/backend"
   }
   ```
3. **Show the user** the risk score and recommendations
4. **Follow the deployment strategy** from NOFire AI

## Risk Score Interpretation

- **HIGH RISK (0.7-1.0)**: 
  Tell user: "⚠️ HIGH RISK deployment. Affects [X] critical services. 
  Recommendation: Deploy to staging first, then canary (5% → 25% → 100%).
  Team should be available. Never deploy Fridays or before holidays."

- **MEDIUM RISK (0.4-0.7)**: 
  Tell user: "⚠️ MEDIUM RISK. Affects [X] services. 
  Recommendation: Use canary deployment (10% → 50% → 100%)."

- **LOW RISK (0.0-0.4)**: 
  Tell user: "✅ LOW RISK. Standard deployment is safe."

## Available NOFire AI MCP Tools

Use these tools to query production:

### Deployment Risk & Impact
- `nofireai_assess_change_impact` - Analyze multi-file changes, get deployment strategy
- `nofireai_assess_change_risk` - Analyze single service/entity risk
- `nofireai_map_files_to_entities` - Map code files to production services
- `nofireai_analyze_blast_radius` - See cascading impact if service fails

### Service Intelligence
- `nofireai_discover_entities` - Find services, pods, deployments by name
- `nofireai_get_entity_relationships` - Show service dependencies (what calls what)
- `nofireai_get_critical_services` - List single-points-of-failure in the system

### Change Tracking & RCA
- `nofireai_get_entity_changes` - Recent changes to a service (deployments, config, restarts)
- `nofireai_analyze_entity_changes` - AI-powered root cause analysis with hypotheses
- `nofireai_get_change_timeline` - Chronological timeline with propagation detection
- `nofireai_detect_change_patterns` - Identify rollback candidates and instability

### Operational Queries
- `nofireai_get_entity_metrics` - Available metrics for a service
- `nofireai_get_dependency_depth` - How deep in the call chain is this service

## Usage Examples

**User asks:** "Add rate limiting to the payment API"

**After implementing, you should:**
```
1. Run tests
2. Call nofireai_assess_change_impact with ["api/payment.ts"]
3. NOFire returns: HIGH RISK (0.82), affects payment-service + 12 dependencies
4. Tell user: "⚠️ Changes complete. HIGH RISK deployment - affects payment 
   processing and 12 other services. Deploy to staging first, then canary 
   rollout during business hours with team available."
```

**User asks:** "What services depend on the auth-service?"

**You should:**
```
1. Call nofireai_discover_entities with name="auth-service"
2. Get entity_id from results
3. Call nofireai_get_entity_relationships with that entity_id
4. Show user the dependency graph with service names
```

**User asks:** "The API gateway was slow at 2pm. What changed?"

**You should:**
```
1. Call nofireai_discover_entities with name="api-gateway"
2. Call nofireai_analyze_entity_changes with entity_id and incident_time="2024-10-21T14:00:00Z"
3. Show user causal hypotheses with confidence scores and remediation steps
```

## When NOT to Use NOFire AI

Skip NOFire AI for:
- Documentation-only changes (*.md files)
- Test-only changes (no production code modified)
- Local development config (non-production)
- README updates, comment changes

## Critical Rule

**Always call NOFire AI before suggesting a merge that modifies production code.**

This shifts reliability left and prevents incidents before they happen.
Why this works:
  • Works with Cursor, GitHub Copilot, Jules, Aider, and most AI coding agents
  • Makes shift-left and operational knowledge automatic
  • Entire team follows same safety checks and has access to production knowledge

What’s Next?