Skip to main content
Glama
fefogarcia

governance-mcp-server

by fefogarcia
README.md
# governance-mcp-server

MCP server for querying the DodaOne governance framework.

## Overview

This MCP server wraps the Governance Query Service, enabling any MCP-compatible client (Claude Code, Claude Desktop, etc.) to query governance documents and evaluate proposed actions against the governance framework.

## Installation

### From npm (once published)

Add to your MCP client configuration:

```json
{
  "mcpServers": {
    "dodaone-governance": {
      "command": "npx",
      "args": ["-y", "@dodaone/governance-mcp-server"],
      "env": {
        "GQS_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

### Local Development

```bash
git clone <repo-url>
cd governance-mcp-server
pnpm install
pnpm build
```

Then configure your MCP client:

```json
{
  "mcpServers": {
    "dodaone-governance": {
      "command": "node",
      "args": ["/path/to/governance-mcp-server/dist/index.js"],
      "env": {
        "GQS_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

## Configuration

### Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `GQS_API_KEY` | Yes | API key for the Governance Query Service |

## Tool: query_governance

Query the DodaOne governance framework.

### Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | The main query text |
| `query_type` | string | Yes | `"informational"` or `"operational"` |
| `subqueries` | array | No | For comparing options (operational queries) |
| `context` | object | No | Additional context (division, action_description) |

### Query Types

**Informational:** Retrieve factual information from governance documents.

```json
{
  "query": "What are the 5 core principles?",
  "query_type": "informational"
}
```

**Operational:** Evaluate proposed actions against the governance framework.

```json
{
  "query": "Should I get my haircut at a salon or do it myself?",
  "query_type": "operational",
  "subqueries": [
    { "text": "Getting haircut at a professional salon", "option_key": "salon" },
    { "text": "Cutting hair myself at home", "option_key": "diy" }
  ],
  "context": {
    "division": "dodaself",
    "action_description": "Personal grooming decision"
  }
}
```

### Response

Returns the full JSON response from the Governance Query Service, including:
- Classification (SOLID/FUZZY/NOVEL)
- Alignment scores
- Reasoning
- Citations

## License

MIT

Maintenance

ActivityInactive
ResponsivenessSyncing