Skip to main content
Glama
Inflectra Spira MCP Server

Inflectra Spira MCP Server

Official
by Inflectra
README.md
# MCP Inflectra Spira Server

A Model Context Protocol (MCP) server that lets AI assistants interact with [Inflectra Spira](https://www.inflectra.com/SpiraPlan/) — covering project management, test management, and requirements management.

Works with SpiraTest, SpiraTeam, and SpiraPlan.

---

## Table of Contents

- [Quick Start](#quick-start)
- [Configuration](#configuration)
- [Available Tools](#available-tools)
- [Usage Examples](#usage-examples)
- [License](#license)

---

## Quick Start

Install from PyPI:

```bash
pip install mcp-server-spira
```

Add to your MCP client config:

```json
{
  "mcpServers": {
    "inflectra-spira": {
      "command": "python",
      "args": ["-m", "mcp_server_spira"],
      "env": {
        "INFLECTRA_SPIRA_BASE_URL": "https://myinstance.spiraservice.net",
        "INFLECTRA_SPIRA_USERNAME": "mylogin",
        "INFLECTRA_SPIRA_API_KEY": "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX}"
      }
    }
  }
}
```

For Cline, add `"type": "stdio"` to the server config. For Claude Desktop:

```bash
mcp install src/mcp_server_spira/server.py --name "Inflectra Spira Server"
```

---

## Configuration

Set these environment variables (or use a `.env` file):

| Variable | Required | Description |
|---|---|---|
| `INFLECTRA_SPIRA_BASE_URL` | Yes | Base URL for your Spira instance |
| `INFLECTRA_SPIRA_USERNAME` | Yes | Your Spira login name |
| `INFLECTRA_SPIRA_API_KEY` | Yes | API Key (RSS Token) from your Spira user profile |
| `SPIRA_PROJECT_ID` | No | Default product ID — avoids passing `product_id` on every call |
| `SPIRA_CREATE_TAGS` | No | Comma-separated tag string merged into `Tags` on every artifact the MCP creates; empty or unset disables injection |
| `SPIRA_UPDATE_TAGS` | No | Comma-separated tag string merged into `Tags` on every artifact the MCP updates; empty or unset disables injection |

---

## Available Tools

13 tools organized by scope. All data-retrieval tools return structured JSON
with field projection, filtering, and a consistent response envelope.

### Search Tools
| Tool | Description |
|---|---|
| `mywork_search_artifacts` | Your assigned items (task, incident, requirement, test_case, test_set) with filtering and field projection |
| `product_search_artifacts` | Search artifacts in a product (11 types). Supports cross-product fan-out, server-side filtering, and nested sub-artifact includes. |
| `product_get_artifact` | Single artifact by ID with full details and optional sub-artifact includes |
| `program_search_artifacts` | Search program-level artifacts (capability, milestone) |

### Write Tools
| Tool | Description |
|---|---|
| `product_create_artifact` | Create artifacts (incident, task, requirement, test_case, risk, release, test_set, build, test_step, mitigation, requirement_step) |
| `product_update_artifact` | Update existing artifacts |
| `product_record_test_run` | Record automated test results from CI/CD |
| `create_comment` | Add a comment to an artifact |
| `create_association` | Link two artifacts (related-to, depends-on, coverage) |

### Workspace & Configuration Tools
| Tool | Description |
|---|---|
| `workspace_search` | List products, programs, or product templates with field projection |
| `workspace_get` | Get a single product, program, or template by ID |
| `template_get_metadata` | Types, statuses, priorities, severities, custom properties, and more for a template |
| `get_artifact_schema` | Field schema for any artifact type (local-only, no API call) |

---

## Usage Examples

Try these prompts with your AI assistant:

```
Show me my assigned tasks in Spira
```

```
List all products in my Spira instance
```

```
Get the open incidents in product 55
```

```
Search for critical requirements across products 55 and 60
```

```
Get the field schema for incidents
```

---

## License

MIT — see [LICENSE](LICENSE).

Built with [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) · [Spira REST API v7.0](https://spiradoc.inflectra.com/Developers/API-Overview/)

<!-- mcp-name: io.github.Inflectra/mcp-server-spira -->

TDQS

A3.5/5.0

Scored across 13 tools

Disambiguation4/5

Most tools target distinct scopes/actions, but the presence of three search_artifacts tools (mywork, product, program) and several get-style tools (product_get_artifact, workspace_get, template_get_metadata, get_artifact_schema) creates some potential for misselection if the agent does not carefully check scope. The descriptions do help clarify boundaries, so confusion is limited to a few adjacent tools.

Naming Consistency4/5

Names are predominantly snake_case and follow a scope_verb_noun pattern for product/program/template tools, but several tools omit the scope prefix (create_comment, create_association, get_artifact_schema) and workspace_search/workspace_get omit the resource noun. These are minor deviations in an otherwise predictable convention.

Tool Count5/5

The 13 tools are well within a reasonable range for a multi-resource artifact management server, and each tool appears to serve a distinct role in search, retrieval, creation, updates, test recording, linking, commenting, or schema discovery. No tool feels redundant or extraneous.

Completeness4/5

The surface covers search/retrieval/creation/update across products, programs, workspaces, artifacts, comments, associations, and test runs, but lacks delete operations for artifacts, comments, and associations. These are minor gaps that agents can largely work around, but full lifecycle coverage would require them.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues