Skip to content

omniboard-dev/mcp

Repository files navigation

Omniboard.dev MCP

MCP server that exposes actionable Omniboard checks for the current project to a local agent.

The server resolves the current project name using the same project-resolution approach as @omniboard/analyzer, retrieves Omniboard settings, then asks the API for actionable check results for that project.

Environment

Required:

OMNIBOARD_API_KEY_MCP=...

The MCP server expects this environment variable to be set before the agent is started. The API key must be an Omniboard API key that is allowed to access the MCP endpoints.

Optional:

OMNIBOARD_API_URL=https://api.omniboard.dev

Registering The MCP Server

The server uses the standard MCP stdio transport. Build the package first:

npm install
npm run build

Then register the built executable with your MCP client.

Generic stdio config

Use this shape for clients that accept MCP server JSON configuration:

{
  "mcpServers": {
    "omniboard": {
      "command": "npx",
      "args": ["@omniboard/mcp"],
      "env": {
        "OMNIBOARD_API_KEY_MCP": "your-api-key"
      }
    }
  }
}

For local development from a checkout:

{
  "mcpServers": {
    "omniboard": {
      "command": "node",
      "args": ["/absolute/path/to/mcp/dist/index.js"],
      "env": {
        "OMNIBOARD_API_KEY_MCP": "your-api-key",
        "OMNIBOARD_API_URL": "https://api.omniboard.dev"
      }
    }
  }
}

Codex config.toml

Add an MCP server entry to your Codex config:

[mcp_servers.omniboard]
command = "npx"
args = ["@omniboard/mcp"]

[mcp_servers.omniboard.env]
OMNIBOARD_API_KEY_MCP = "your-api-key"

For local development from a checkout:

[mcp_servers.omniboard]
command = "node"
args = ["/absolute/path/to/mcp/dist/index.js"]

[mcp_servers.omniboard.env]
OMNIBOARD_API_KEY_MCP = "your-api-key"
OMNIBOARD_API_URL = "https://api.omniboard.dev"

Alternatively, set OMNIBOARD_API_KEY_MCP in the shell environment before starting the agent and omit the env block from the client config.

Bash:

export OMNIBOARD_API_KEY_MCP="your-api-key"
codex

Fish:

set -x OMNIBOARD_API_KEY_MCP "your-api-key"
codex

PowerShell:

$env:OMNIBOARD_API_KEY_MCP = "your-api-key"
codex

Tools

omniboard_list_actionable_checks

Returns the actionable checks that currently have results for the resolved project.

Response:

{
  "project": {
    "id": 1,
    "name": "example-project",
    "lastAnalysisDate": "2026-04-27T12:00:00.000Z"
  },
  "checks": [
    {
      "name": "UXF",
      "type": "content",
      "description": "UXF usage detected",
      "prompt": "Update the matched usages...",
      "value": true
    }
  ]
}

omniboard_get_actionable_check_results

Input:

{
  "name": "UXF"
}

Returns the result context for the check. The API owns the result DTO, so the MCP passes it through as result.

Response:

{
  "project": {
    "id": 1,
    "name": "example-project"
  },
  "check": {
    "name": "UXF",
    "type": "content",
    "description": "UXF usage detected",
    "actionable": true,
    "prompt": "Update the matched usages..."
  },
  "result": {}
}

Backend Endpoints

Checks

GET /mcp/checks?projectName=example-project

Expected response:

{
  "project": {
    "id": 1,
    "name": "example-project",
    "lastAnalysisDate": "2026-04-27T12:00:00.000Z"
  },
  "checks": [
    {
      "name": "UXF",
      "type": "content",
      "description": "UXF usage detected",
      "actionable": true,
      "prompt": "Update the matched usages...",
      "value": true
    }
  ]
}

Result

GET /mcp/result?projectName=example-project&checkName=UXF

Expected response:

{
  "project": {
    "id": 1,
    "name": "example-project"
  },
  "check": {
    "name": "UXF",
    "type": "content",
    "description": "UXF usage detected",
    "actionable": true,
    "prompt": "Update the matched usages..."
  },
  "result": {}
}

About

Omniboard.dev MCP server that turns actionable checks triggered for the current project into agent-driven fixes, refactors, and improvements that happen automatically.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors