July 14th, 2025 by Adam Sandman
In this blog series we are introducing our new MCP Server for Spira, and demonstrating how you can use it to turbocharge your development processes. Model Context Protocol (MCP) is a new technology for connecting AI tools with backend services. This is the fourth article in the series, and demonstrates in detail some of the specific use cases that you can use the Spira MCP Server for. In the previous article we looked at using the My Work MCP tools, in this article we'll look at the Workspace and Program/Product Artifact tools in depth.
Using the Workspaces Feature
Following on using the My Work feature in the previous article, we will now explore using the "Workspaces" MCP feature. For example, as a user I might want to get a list of all the Spira products that I have access to:
From this simple question, the Cline agent will look to find a matching MCP tool:
The user wants to know what products in Spira they have access to. Based on the file structure, I can see this is a project related to Spira, which appears to be some kind of project management or testing tool. There's an MCP server connected called "inflectra-spira" that provides various tools for interacting with Spira.
Looking at the available MCP tools, I see there's a tool called `get_products` that seems perfect for this task
This tool doesn't require any parameters, so I can use it directly to retrieve the list of products the user has access to.
I'll retrieve the list of products you have access to in Spira.
It has correctly identified the tool to use (get_products) and asks permission to call it:
If you get tired of having Approve each MCP tool, simple check the Auto-Approve option for that specific tool, and Cline will know that you are fine with the agent autonomously called it without needing pre-approval.
As a best practice, we recommend only auto-approving MCP tools that do retrieves (and are usually prefixed with "get_"). That way you can prevent any erroneous deletes or updates happening in your instance of Spira!!
I've successfully retrieved the list of products that the user has access to in Spira. The response shows a comprehensive list of products with their details including:
1. Product ID and name
2. Description (for some products)
3. Website (if available)
4. Template ID
5. Program ID
6. Completion percentage
7. Start and end datesThe user now has a complete view of all the products they have access to in Spira. This completes their request, so I should use the attempt_completion tool to present this result.
The MCP tool has successfully provided a list of products in Spira, together with their key fields. Based on this information, the agent again uses the special attempt_completion tool to present the information in a meaningful and useful way:
You can see that it has performed some intelligent grouping and summarization to avoid having to list all 49 products. It has grouped them by industry where possible, and simply enumerated the demo and sample ones under "various".
Similarly I can now ask it to get my the list of Spira programs that I have access to:
The agent uses a similar reasoning process as for products:
The user is now asking for a list of programs in Spira that they have access to. Looking at the available MCP tools, I can see there's a tool called get_programs that would be perfect for this task.
This tool doesn't require any parameters, so I can use it directly to retrieve the list of programs the user has access to.
I'll retrieve the list of programs you have access to in Spira.
Once I approve the tool, it makes the necessary API call to Spira using the MCP tool and then comments on what it found:
I've successfully retrieved the list of programs that the user has access to in Spira. The response shows a comprehensive list of programs with their details including:
1. Program ID and name
2. Description (for some programs)
3. Website (if available)
4. Product Template ID
5. Portfolio IDThe user now has a complete view of all the programs they have access to in Spira. This completes their request, so I should use the attempt_completion tool to present this result.
In this case it didn't change the data all that much, simply returning a bulleted list of programs with their name and ID.
This wasn't as useful, so I then asked Cline if it could group the data for me:
Note that I misspelt group as "groip", but that didn't faze Cline (or Claude!):
The user wants me to group the list of programs by industry. Looking at the program names and descriptions, I can identify several industry categories
and without needing to call the Spira MCP tool again, it simply did the grouping and re-presented the data to me:
This is much better, and also demonstrates that when the agent returns data in a format that is not exactly what you need, you can easily ask it to change how it's presented for you.
Using the Program and Product Artifacts Features
The next feature we want to explore are the program and product artifact features. Unlike the ones used so far, these ones expect specific input parameters such as the ID of the product or program that you are interested in.
Firstly, lets ask Cline to get us a list of the requirements in a specific Spira product:
Here I have asked Cline to get me all of the requirements in Product PR:1. It uses my question to figure out that it should use the get_requirements MCP tool:
The user wants to get all requirements from Spira product with ID PR:1. Looking at the available tools and the MCP server information, I can see that there's an MCP server called "inflectra-spira" that provides tools for interacting with Spira.
For this task, I need to use the `get_requirements` tool from the inflectra-spira MCP server. This tool retrieves a list of requirements in a specified product.
Looking at the tool's input schema, it requires a `product_id` parameter, which is the numeric ID of the product. The user mentioned PR:1, and according to the tool description, if the ID is PR:45, I should just use 45. So in this case, I need to use product_id = 1.
I'll use the `use_mcp_tool` to call the `get_requirements` tool from the inflectra-spira server.
Unlike the previous tools, Cline has to figure out the format for the parameters. We have documented the product_id parameter with MCP in mind, letting the LLM know that the product token PR:xx should be interpreted as just xx.
Once it has run the tool it will get back a list of all the requirements in the product (there could be quite a large number):
You can see that it has intelligently grouped the requirements by their type (Epic, Features, Stories, etc.). It also has given a nice synopsis of what it thinks the requirements relate to:
The system contains 89 requirements in total, covering various aspects of what appears to be a library management system along with some other sample requirements.
If I want to filter the requirements in some way, I can just ask Cline to do that for me, no need to re-query Spira:
The user wants me to filter the previously retrieved requirements to show only those with High (2) and Critical (1) importance. I'll go through the results from the previous MCP tool call and extract only the requirements that have an importance level of "1 - Critical" or "2 - High".
Using this criteria it will update the analysis and provide a new answer:
Now what if I didn't know the ID of the product, only its name? Let me try that and see what happens:
The system now needs to use multiple tools in sequence (often called an agentic workflow):
The user now wants me to get all requirements from a Spira product called "Library Information System" instead of using the product ID. I need to first find the product ID for "Library Information System" and then use that ID to get the requirements.
I'll use the `get_products` tool from the inflectra-spira MCP server to get a list of all products, which should include their names and IDs. Then I can find the ID for "Library Information System" and use that to get the requirements.
followed by:
This is when the benefit of Auto-Approve becomes more evident as you can basically ask a complex question that will need the input from multiple tools (perhaps involving multiple platforms such as Spira, GitHub, etc.) and let the agent go ahead and find the answer for you.
We can do something similar for test cases as well. This is an interesting use case, as test cases have both test folders and test cases, which the MCP tool knows how to handle for us:
In this example I am using the product name rather than the ID. Let's see how Cline handles this:
I need to retrieve all test cases from the Spira product "Library Information System". Based on the available tools from the MCP server "inflectra-spira", I can see that there's a tool called get_test_cases that would be perfect for this task.
Cline has found the correct tool to get all of the test cases (and folders) in a Spira product. However it has determined that it has a problem:
I need the product ID for "Library Information System". However, I don't have this information yet. I should first get a list of products to find the ID for "Library Information System".
I'll use the `get_products` tool to retrieve a list of all products the user has access to, which should include "Library Information System" and its ID.
I'll help you retrieve all test cases from the "Library Information System" product in Spira. First, I need to find the product ID.
So luckily it has determined that it needs to use the get_products tool as well:
I've found the product "Library Information System (Sample)" in the list with the ID [PR:1]. The exact name is slightly different from what the user asked for (it has "(Sample)" appended), but it's clearly the library information system they're referring to.
Now I can use the `get_test_cases` tool to retrieve all test cases for this product. According to the tool description, I need to provide the product_id parameter, which in this case is 1 (removing the "PR:" prefix as instructed in the tool documentation).
I found the "Library Information System (Sample)" product with ID [PR:1]. Now I'll retrieve all test cases for this product.
Here we can see that it determined which product I was interested in, even though I had not provided an exact name match, but it was close enough for Claude:
Using this tool with the correct product ID, it is able to display the list of test cases and folders for me:
I've successfully retrieved all the test cases from the "Library Information System (Sample)" product (PR:1). The response contains a comprehensive list of test cases with their details including status, type, priority, and execution status. The test cases are organized by folders, which helps provide structure to the test suite.
Now I can use the attempt_completion tool to present this information to the user. Since I've already completed the task of retrieving all test cases from the specified product, there's no need for additional tool use.
As well as the list of folders, it has added the following commentary:
This is useful analysis to have. It also makes me think of a follow-up question to ask Cline:
Cline can help me with this without needing to call any additional MCP tools:
The user wants to know which test cases have failed in the Library Information System product. I'll go through the test case list I retrieved earlier and identify all test cases with a "Failed" execution status.
In addition to this useful list of failed test cases (grouped by folder), it also adds this final analysis:
Showing us the power of Agentic AI in only completing multiple tasks autonomously, but injecting reasoning and "chain of thought" during the process.
To finish off this blog series on our Spira MCP server we will finally look at the Automations feature in our last article.