Skip to main content
Glama
Inflectra Spira MCP Server

Inflectra Spira MCP Server

Official
by Inflectra

product_search_artifacts

Read-only

Search Spira product artifacts such as requirements, tasks, and incidents by type, status, owner, priority, or custom filters to find relevant project records.

Instructions

Search artifacts in a Spira product.

filters: [{{"field": "Name", "operator": "contains", "value": "login"}}] — use get_artifact_schema for fields. release_id: required for builds.

Input Schema

NameRequiredDescriptionDefault
stateNoFilter by lifecycle state (open/closed) regardless of the specific status name; for one named status use `status`. Mutually exclusive with `status`.
fieldsNo
statusNoFilter by one named status (e.g. `New`, `Accepted`). To filter by lifecycle bucket across every open or closed status, use `state` instead. Mutually exclusive with `state`.
filtersNo
includeNo
owner_idNo
priorityNo
componentNo
release_idNo
product_idsNo
current_userNo
starting_rowNo
artifact_typeYes
number_of_rowsNo
requirement_idNo
artifact_type_filterNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed35 schema fields changedv2.1.0
    • removedInput schema / properties / artifact_type / title
      Removed value: -"Artifact Type"
    • addedInput schema / properties / artifact_type_filter
      Added value: +{
      +  "default": null,
      +  "type": "string"
      +}
    • addedInput schema / properties / component
      Added value: +{
      +  "default": null,
      +  "type": "string"
      +}
    • addedInput schema / properties / current_user
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • removedInput schema / properties / fields / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / fields / items
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / fields / title
      Removed value: -"Fields"
    • addedInput schema / properties / fields / type
      Added value: +"array"
    • addedInput schema / properties / filters
      Added value: +{
      +  "default": null,
      +  "items": {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / include / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / include / items
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / include / title
      Removed value: -"Include"
    • addedInput schema / properties / include / type
      Added value: +"array"
    • removedInput schema / properties / number_of_rows / title
      Removed value: -"Number Of Rows"
    • addedInput schema / properties / owner_id
      Added value: +{
      +  "default": null,
      +  "type": "integer"
      +}
    • removedInput schema / properties / priority / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / priority / title
      Removed value: -"Priority"
    • addedInput schema / properties / priority / type
      Added value: +"string"
    • removedInput schema / properties / product_ids / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "type": "integer"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / product_ids / items
      Added value: +{
      +  "type": "integer"
      +}
    • removedInput schema / properties / product_ids / title
      Removed value: -"Product Ids"
    • addedInput schema / properties / product_ids / type
      Added value: +"array"
    • removedInput schema / properties / release_id / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / release_id / title
      Removed value: -"Release Id"
    • addedInput schema / properties / release_id / type
      Added value: +"string"
    • removedInput schema / properties / requirement_id / anyOf
      Removed value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / requirement_id / title
      Removed value: -"Requirement Id"
    • addedInput schema / properties / requirement_id / type
      Added value: +"integer"
    • removedInput schema / properties / starting_row / title
      Removed value: -"Starting Row"
    • addedInput schema / properties / state
      Added value: +{
      +  "default": null,
      +  "description": "Filter by lifecycle state (open/closed) regardless of the specific status name; for one named status use `status`. Mutually exclusive with `status`.",
      +  "enum": [
      +    "open",
      +    "closed"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / status / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / status / description
      Added value: +"Filter by one named status (e.g. `New`, `Accepted`). To filter by lifecycle bucket across every open or closed status, use `state` instead. Mutually exclusive with `state`."
    • removedInput schema / properties / status / title
      Removed value: -"Status"
    • addedInput schema / properties / status / type
      Added value: +"string"
    • removedInput schema / title
      Removed value: -"product_search_artifactsArguments"
  2. First observedv1.1.1

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a read-only, non-destructive, open-world operation. The description adds useful context beyond that, such as the filter object shape and the conditional build requirement for release_id, but it does not describe pagination behavior, result limits, or other operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and then provides two compact usage notes. It is efficient and mostly waste-free, though it is perhaps too terse for a tool with this many parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 16 parameters, very low schema description coverage, and multiple sibling search tools, the description is not complete enough to guide an agent on most optional parameters or distinctions. It does point to get_artifact_schema and an existing output schema covers returns, but large parts of the input surface remain unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 13% across 16 parameters, so the description carries a heavy compensation burden. It explains the filters format and release_id conditional requirement, and points to get_artifact_schema, but leaves most parameters such as owner_id, priority, component, include, fields, and pagination undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Search artifacts") and scopes it to a Spira product, which helps distinguish it from mywork_search_artifacts and program_search_artifacts. It is clear but does not explicitly name those sibling alternatives, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides implied usage guidance: product-scoped search, use get_artifact_schema for filter fields, and release_id is required for builds. However, there is no explicit statement of when to use this tool versus mywork_search_artifacts or program_search_artifacts, nor any when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.