Inflectra Spira MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPIRA_PROJECT_ID | No | Default product ID — avoids passing product_id on every call | |
| INFLECTRA_SPIRA_API_KEY | Yes | API Key (RSS Token) from your Spira user profile | |
| INFLECTRA_SPIRA_BASE_URL | Yes | Base URL for your Spira instance | |
| INFLECTRA_SPIRA_USERNAME | Yes | Your Spira login name |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| template_get_metadataA | Retrieves template metadata sections for a product template. template_id: numeric ID (e.g. 45 for PT:45). metadata_type: sections to fetch (see enum). Omit for all. artifact_type: filter to one kind (e.g. "Requirement"). Omit for all. Some sections are artifact-specific (e.g. severities→Incident, importances→Requirement). Returns JSON: {template_id, sections, warnings}. |
| workspace_searchC | Lists workspaces in Spira. workspace_type: 'product', 'program', 'product_template' |
| workspace_getB | Retrieve a single workspace entity by its numeric ID. workspace_type: 'product', 'program', 'product_template' |
| product_create_artifactA | Create artifacts in a Spira product. Name and Description are required for most types. Sub-artifacts (test_step, mitigation, requirement_step) require parent_id. Builds require release_id. Use get_artifact_schema to discover optional writable fields. |
| product_record_test_runB | Record an automated test result in Spira. execution_status_id: 1=Failed, 2=Passed, 3=Not Run, 4=N/A, 5=Blocked, 6=Caution. test_case_id is the numeric ID without TC prefix (e.g. 12 for TC:12). short_message should be 50 chars or less. |
| product_update_artifactA | Update a single artifact by ID in a Spira product. Sub-artifacts (test_step, mitigation, requirement_step) require parent_id. Use get_artifact_schema to discover writable fields for each type. To clear a custom property, set its value to null. |
| create_commentB | Add a comment to an artifact. Use product_get_artifact with include=["comments"] to read existing comments. |
| create_associationA | Link two artifacts. association_type: related-to, depends-on, coverage. Valid source->dest (related-to/depends-on): document->automation_host,incident,release,requirement,risk,task,test_case,test_run,test_set,test_step; incident->incident,requirement,risk,task,test_step; release->release,requirement; requirement->incident,release,requirement,risk; risk->incident,requirement,risk,test_case; task->incident,task; test_case->risk,task. Coverage: release->test_case, requirement<->test_case, requirement->test_step. |
| get_artifact_schemaA | Returns the field schema for a Spira artifact type as JSON. artifact_type: task, incident, requirement, test_case, release, risk, test_set, test_run, automation_host, capability, milestone Returns: {artifact_type, fields: [{name, type, description}]} or {error, valid_types}. |
| mywork_search_artifactsC | Retrieve the current user's assigned artifacts. artifact_type: [incident, task, test_case, requirement, test_set] |
| product_search_artifactsB | Search artifacts in a Spira product. filters: [{{"field": "Name", "operator": "contains", "value": "login"}}] — use get_artifact_schema for fields. release_id: required for builds. |
| product_get_artifactA | Retrieve a single artifact by ID from a Spira product. artifact_type: incident|task|test_case|requirement|risk|release|test_set|test_run|automation_host|build|document release_id: required when artifact_type='build' include: test_steps (test_case), mitigations (risk), steps (requirement), comments (most types), associations (most types), coverage (requirement, test_case, release) |
| program_search_artifactsC | Search artifacts in a Spira program. artifact_type: [capability, milestone] program_id: required, no default |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| Create Conventions File | Create a starting conventions file Inflectra Spira |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| active_product_resource |
TDQS
Scored across 13 tools
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.
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.
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.
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.