Metadata-Version: 2.4
Name: mcp-server-spira
Version: 2.0.0
Summary: A Model Context Protocol (MCP) server enabling AI assistants to interact with Spira by Inflectra.
Author-email: Inflectra Corporation <support@inflectra.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/Inflectra/mcp-server-spira
Project-URL: Documentation, https://www.inflectra.com/Ideas/Entry/using-the-spira-mcp-server-in-vs-code-part-1-1902.aspx
Project-URL: Repository, https://github.com/Inflectra/mcp-server-spira.git
Keywords: MCP,AI,GenAI
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx>=0.28.1
Requires-Dist: mcp[cli]>=1.9.2
Requires-Dist: python-multipart>=0.0.27
Requires-Dist: idna>=3.15
Requires-Dist: starlette>=1.0.1
Requires-Dist: pyjwt>=2.13.0
Dynamic: license-file

# 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 |

---

## 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 -->
