polarion-mcp 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +130 -101
  2. package/build/composite-documents.js +18 -3
  3. package/build/composite-documents.js.map +1 -1
  4. package/build/composite-search.d.ts +2 -0
  5. package/build/composite-search.js +46 -14
  6. package/build/composite-search.js.map +1 -1
  7. package/build/composite-trace.js +26 -13
  8. package/build/composite-trace.js.map +1 -1
  9. package/build/composite-upload.js +16 -3
  10. package/build/composite-upload.js.map +1 -1
  11. package/build/composite-utils.d.ts +1 -0
  12. package/build/composite-utils.js +8 -1
  13. package/build/composite-utils.js.map +1 -1
  14. package/build/executor.d.ts +1 -1
  15. package/build/executor.js +59 -11
  16. package/build/executor.js.map +1 -1
  17. package/build/http-server.js +3 -0
  18. package/build/http-server.js.map +1 -1
  19. package/build/httpClient.d.ts +2 -0
  20. package/build/httpClient.js +5 -3
  21. package/build/httpClient.js.map +1 -1
  22. package/build/mcp-http-server.js +29 -19
  23. package/build/mcp-http-server.js.map +1 -1
  24. package/build/oauth.js +16 -2
  25. package/build/oauth.js.map +1 -1
  26. package/build/pagination.d.ts +1 -0
  27. package/build/pagination.js +14 -1
  28. package/build/pagination.js.map +1 -1
  29. package/build/rest-api.d.ts +6 -0
  30. package/build/rest-api.js +27 -7
  31. package/build/rest-api.js.map +1 -1
  32. package/build/server.d.ts +10 -0
  33. package/build/server.js +96 -77
  34. package/build/server.js.map +1 -1
  35. package/build/tool-execution.d.ts +15 -0
  36. package/build/tool-execution.js +75 -0
  37. package/build/tool-execution.js.map +1 -0
  38. package/build/untrusted-content.d.ts +6 -0
  39. package/build/untrusted-content.js +21 -5
  40. package/build/untrusted-content.js.map +1 -1
  41. package/build/utils.d.ts +2 -0
  42. package/build/utils.js +10 -0
  43. package/build/utils.js.map +1 -1
  44. package/package.json +9 -7
  45. package/src/composite-documents.ts +18 -3
  46. package/src/composite-search.ts +46 -12
  47. package/src/composite-trace.ts +25 -12
  48. package/src/composite-upload.ts +11 -2
  49. package/src/composite-utils.ts +7 -1
  50. package/src/executor.ts +48 -14
  51. package/src/http-server.ts +3 -0
  52. package/src/httpClient.ts +7 -2
  53. package/src/mcp-http-server.ts +32 -19
  54. package/src/oauth.ts +15 -1
  55. package/src/pagination.ts +10 -1
  56. package/src/rest-api.ts +33 -8
  57. package/src/server.ts +92 -71
  58. package/src/tool-execution.ts +98 -0
  59. package/src/untrusted-content.ts +23 -5
  60. package/src/utils.ts +8 -0
package/README.md CHANGED
@@ -2,156 +2,185 @@
2
2
 
3
3
  # Polarion MCP
4
4
 
5
- **Connect your AI assistant to Polarion ALM.**
5
+ **Your Polarion work, one conversation away.**
6
6
 
7
- An open-source Model Context Protocol server with **284 tools** generated from the Polarion REST API.
7
+ Find requirements, review documents and prepare test runs through your AI assistant.
8
+ An open-source [Model Context Protocol](https://modelcontextprotocol.io) server that exposes **every Polarion REST operation** (284 tools, generated from the current API definition).
8
9
 
9
10
  [![CI](https://github.com/phillipboesger/polarion-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/phillipboesger/polarion-mcp/actions/workflows/ci.yml)
10
11
  [![npm version](https://img.shields.io/npm/v/polarion-mcp)](https://www.npmjs.com/package/polarion-mcp)
11
12
  [![Docker image](https://img.shields.io/badge/ghcr.io-polarion--mcp-2496ED?logo=docker&logoColor=white)](https://github.com/phillipboesger/polarion-mcp/pkgs/container/polarion-mcp)
12
13
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
13
- [![Node.js >=22](https://img.shields.io/badge/node-%3E%3D22-339933?logo=node.js&logoColor=white)](package.json)
14
- [![Model Context Protocol](https://img.shields.io/badge/MCP-server-6E56CF)](https://modelcontextprotocol.io)
15
- [![GitHub stars](https://img.shields.io/github/stars/phillipboesger/polarion-mcp?style=flat)](https://github.com/phillipboesger/polarion-mcp/stargazers)
16
14
 
17
- [**Pick your client**](https://polarion-mcp.boesger.com/#clients) · [Website](https://polarion-mcp.boesger.com/) · [Documentation](docs/README.md) · [Tool catalog](src/tools.ts) · [Security](docs/security.md) · [Deployment](docs/deployment.md) · [Contribute](CONTRIBUTING.md)
15
+ [**Connect your assistant**](https://polarion-mcp.boesger.com/#clients) · [Daily workflows](https://polarion-mcp.boesger.com/#daily-use) · [Tool catalog](src/tools.ts)
16
+
17
+ <img src="docs/assets/site-hero.png" alt="Polarion MCP works with Claude, ChatGPT, Gemini, VS Code, Copilot, Cursor and Codex." width="900" />
18
18
 
19
19
  </div>
20
20
 
21
- ## See it in action
21
+ On this page:
22
22
 
23
- <p align="center">
24
- <img src="docs/assets/demo.gif" alt="Illustrated workflow: an AI assistant queries Polarion work items and presents the results" width="1000">
25
- </p>
23
+ - [What the connector does for you](#what-the-connector-does-for-you)
24
+ - [A day with Polarion MCP](#a-day-with-polarion-mcp)
25
+ - [Get connected](#get-connected)
26
+ - [FAQ](#faq)
27
+ - [Feedback and community](#feedback-and-community)
28
+ - [Documentation](#documentation)
29
+ - [License](#license)
26
30
 
27
- Ask about open defects, read a document, or work with test runs. See a [worked example](docs/example-task.md) and the [usage guide](docs/usage.md).
31
+ ## What the connector does for you
28
32
 
29
- <details>
30
- <summary>On this page</summary>
33
+ ![Your AI client sends tool calls to Polarion MCP, which turns them into REST requests against your Polarion](docs/assets/site-flow.png)
31
34
 
32
- - [See it in action](#see-it-in-action)
33
- - [Quickstart](#quickstart)
34
- - [What you can do](#what-you-can-do)
35
- - [Client guides](#client-guides)
36
- - [Security and team deployment](#security-and-team-deployment)
37
- - [Documentation](#documentation)
38
- - [Contributing](#contributing)
39
- - [License](#license)
35
+ **Your AI client → Polarion MCP → your Polarion REST API.** Ask a question; the assistant chooses tools, reads the returned data and proposes an answer or change.
40
36
 
41
- </details>
37
+ - **Find answers:** search requirements and defects, read LiveDocs and inspect traceability links.
38
+ - **Prepare work:** draft test cases, prepare runs and record the test outcomes your team supplies.
39
+ - **Change data, safely:** the assistant can create and update Polarion data, and every write can be previewed first (`dry_run: true` shows the exact request without sending it). Prefer read access only? `MCP_READ_ONLY=1` blocks all writes. Set approval rules in your AI client; previews do not create an approval lock.
40
+ - **Inspect what you run:** MIT source, release SBOMs, build provenance and signed container images. See [supply-chain verification](docs/quality/supply-chain.md).
41
+
42
+ ![Topic cards: work items, test management, plans, documents and more, covering every Polarion REST operation](docs/assets/site-coverage.png)
43
+
44
+ | Domain | Outcome |
45
+ |---|---|
46
+ | Work items | Find requirements, triage defects, prepare field updates. |
47
+ | Documents and pages | Read LiveDocs, inspect parts, manage attachments and supported pages. |
48
+ | Test management | Prepare runs and record supplied results. |
49
+ | Plans and collections | Review release scope and document collections. |
50
+ | Projects, people and configuration | Discover accessible projects, users, allowed field values and metadata. |
51
+
52
+ The [landing page](https://polarion-mcp.boesger.com/#features) shows counts by domain, computed from `src/tools.ts`. The **284 tools** count covers generated REST operations; configured toolsets and additional helpers change the exposed catalog. Selected Work Item writes validate enumeration values, custom-field keys and user references. [Features and limits](docs/features.md) describe the scope.
42
53
 
43
- ## Quickstart
54
+ ## A day with Polarion MCP
44
55
 
45
- You need **Node.js 22+**, a Polarion instance with its REST API enabled, and a personal access token (PAT).
56
+ ![Five example conversations: release triage, document review, test preparation, release status and traceability gaps](docs/assets/site-daily.png)
46
57
 
47
- 1. **[Pick your client](https://polarion-mcp.boesger.com/#clients)** for its configuration format. Local clients can launch the npm package with `npx -y polarion-mcp`. Cloud clients need a deployed server; use your team's MCP URL and the matching guide.
48
- 2. **Connect.** Add the launch command and environment to your client's configuration. For clients using `mcpServers`, the local stdio configuration is:
58
+ These are illustrative conversations using real tools, not recorded outputs. Project types, link roles and permissions vary.
49
59
 
50
- ```json
51
- {
52
- "mcpServers": {
53
- "polarion": {
54
- "command": "npx",
55
- "args": ["-y", "polarion-mcp"],
56
- "env": {
57
- "API_BASE_URL": "https://YOUR-POLARION/polarion/rest/v1",
58
- "BEARER_TOKEN": "YOUR_POLARION_PAT"
59
- }
60
- }
61
- }
62
- }
63
- ```
60
+ | Ask your assistant | Tools and result | Your control |
61
+ |---|---|---|
62
+ | “Which open defects could block this release?” | `getWorkItems`, `getWorkItem`: a scoped list of severity, owners and missing information. | Read-only triage; approve any later reassignment. |
63
+ | “Review this LiveDoc and propose clearer acceptance criteria for REQ-17.” | `getDocument`, `getDocumentParts`, `getWorkItem`, `patchWorkItem`: a rewrite of the requirement’s description. | Preview with `dry_run: true`; approve before saving. |
64
+ | “Draft tests from these requirements, then record the results I provide.” | `getWorkItems`, `postWorkItems`, `postTestRuns`, `postTestRecords`: proposed cases and a run, then supplied outcomes. | Check existing tests, preview each write and approve. The connector does not execute product tests. |
65
+ | “Summarize this release plan and its latest test runs.” | `getPlan`, `getWorkItems`, `getTestRuns`: a draft status update with source IDs and missing data. | You decide release readiness. |
66
+ | “Find requirements without a verifies link to a test case.” | `getWorkItems`, `getLinkedWorkItems`: a scoped gap list and existing candidate tests. | Confirm link roles and scope before creating anything. |
64
67
 
65
- Replace the URL and token with your own values. Other clients use a different configuration envelope; follow your client guide. Your client launches the server.
66
- 3. **Ask.** Confirm that the client lists Polarion tools, then ask: “List the Polarion projects I can access.”
68
+ [Explore the chat-style walkthroughs](https://polarion-mcp.boesger.com/#daily-use). For larger work, follow the [worked task](docs/example-task.md): read items one by one, check existing coverage, propose changes, then verify the result.
67
69
 
68
- <details>
69
- <summary>Alternative: build from source</summary>
70
+ ## Get connected
70
71
 
71
- With Git and Node.js 22+:
72
+ ![Pick your AI provider, choose npm, Docker or Remote URL, and copy the matching configuration](docs/assets/site-setup.png)
73
+
74
+ **First: how do you run the server?** You need a REST-enabled Polarion instance and a PAT.
75
+
76
+ | Server choice | Use it when | What runs |
77
+ |---|---|---|
78
+ | **npm / npx** | Your desktop or coding client supports local MCP. | The client launches a stdio process with Node.js 22+ and your PAT. |
79
+ | **Docker** | You are setting up your own or a team server. | Streamable HTTP, with each caller’s PAT. Add HTTPS and OAuth for cloud connectors. |
80
+ | **Remote URL** | Your team already hosts it. | Nothing to install locally; get the endpoint from your administrator. |
81
+
82
+ Choose your client in the [inline setup picker](https://polarion-mcp.boesger.com/#clients). It recommends a server choice, explains unsupported options, and shows the server command, client snippet and short steps together. Claude Desktop, Claude Code, Cursor and VS Code accept local or remote setups. **claude.ai and ChatGPT’s hosted connector path use a reachable HTTPS server**, rather than directly launching npx. OpenAI also offers [Secure MCP Tunnel](https://developers.openai.com/api/docs/guides/secure-mcp-tunnels) for private servers; that requires separate setup and permissions.
83
+
84
+ <!-- clients:start -->
85
+ | Group | Setup |
86
+ |---|---|
87
+ | [Claude](https://polarion-mcp.boesger.com/#setup/claude-desktop) | Claude Desktop and Claude Code: local or remote; claude.ai and API: HTTPS server. |
88
+ | [ChatGPT / Codex](https://polarion-mcp.boesger.com/#setup/chatgpt-apps) | ChatGPT connector: HTTPS; Custom GPT Actions: REST/OpenAPI; Codex: local or remote. |
89
+ | [Gemini, editors, other providers](https://polarion-mcp.boesger.com/#setup/cursor) | Gemini Enterprise and CLI, VS Code, Cursor and more; OpenAI API, Agents SDK or any MCP client. |
90
+ | [Custom / team server](https://polarion-mcp.boesger.com/#setup/generic-stdio) | Other AI provider / any MCP client: stdio or HTTP; Docker, REST/OpenAPI and n8n. |
91
+ <!-- clients:end -->
92
+
93
+ **Local example:** paste this into Claude Desktop’s Developer config or a compatible client’s private MCP settings. Replace the URL and PAT, merge with existing settings, then reconnect. Fully quit and restart Claude Desktop.
94
+
95
+ ```json
96
+ {
97
+ "mcpServers": {
98
+ "polarion": {
99
+ "command": "npx",
100
+ "args": ["-y", "polarion-mcp"],
101
+ "env": {
102
+ "API_BASE_URL": "https://YOUR-POLARION/polarion/rest/v1",
103
+ "BEARER_TOKEN": "YOUR_POLARION_PAT"
104
+ }
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ **Docker example:** the published image starts an HTTP server on a loopback port.
72
111
 
73
112
  ```bash
74
- git clone https://github.com/phillipboesger/polarion-mcp.git
75
- cd polarion-mcp
76
- npm ci --ignore-scripts
77
- npm run build
113
+ docker run -d --name polarion-mcp \
114
+ -p 127.0.0.1:3000:3000 \
115
+ -e API_BASE_URL=https://YOUR-POLARION/polarion/rest/v1 \
116
+ -e MCP_ALLOWED_HOSTS=localhost:3000,127.0.0.1:3000 \
117
+ ghcr.io/phillipboesger/polarion-mcp:1.4.1
78
118
  ```
79
119
 
80
- In your client's local configuration, replace `"command": "npx"` with `"command": "node"` and `"args": ["-y", "polarion-mcp"]` with `"args": ["/absolute/path/to/polarion-mcp/build/index.js"]`. Keep the same environment variables.
120
+ For a local HTTP client, use `http://localhost:3000/mcp` with `Authorization: Bearer YOUR_POLARION_PAT`. For a team, proxy HTTPS to that port and add the public hostname to `MCP_ALLOWED_HOSTS`. Cloud connectors also need `MCP_PUBLIC_URL`, a stable `MCP_TOKEN_SECRET`, exact redirect allowlists and a `TRUST_PROXY` setting matching the real proxy chain. The picker includes that server configuration for claude.ai and ChatGPT. See [deployment](docs/deployment.md#docker) for operations details.
121
+
122
+ **Other AI provider / any MCP client:** choose [Any MCP client](https://polarion-mcp.boesger.com/#setup/generic-stdio) for stdio or HTTP connection shapes. For OpenAPI clients, Custom GPT Actions and n8n, run the **separate REST wrapper** with a deployment PAT and `HTTP_API_KEY`; the [REST setup](https://polarion-mcp.boesger.com/#setup/rest-wrapper) includes its command and schema URLs.
123
+
124
+ Keep credentials out of Git. There is no public Polarion relay. Finish with a read-only check: “List the Polarion projects I can access.” [Vendor sources and compatibility notes](docs/clients.md) explain the documented paths.
125
+
126
+ ## FAQ
127
+
128
+ <!-- faq:start -->
129
+ <details><summary>Which setup do I need?</summary>
130
+
131
+ Desktop or coding client: npm / npx (your client starts the server). Shared team server: Docker. claude.ai or ChatGPT connector: a public HTTPS server with OAuth, so Docker, or Remote URL if your team runs one. Custom GPT Actions use the REST wrapper.
81
132
 
82
133
  </details>
134
+ <details><summary>How do I create a Polarion personal access token (PAT)?</summary>
83
135
 
84
- For Docker, a shared server, or OAuth login, follow the [deployment guide](docs/deployment.md). Having trouble? See [troubleshooting](docs/troubleshooting.md).
136
+ Polarion user page > Personal Access Token > name and expiry > Create Token. Copy it at once, it is shown only once. If the page says token generation is not allowed, your administrator must enable `com.siemens.polarion.rest.security.restApiToken.enabled=true`.
85
137
 
86
- ## What you can do
138
+ </details>
139
+ <details><summary>Is my data safe? Which permissions apply?</summary>
87
140
 
88
- - **Work with Polarion data:** generated tools cover work items, documents, test management, plans, projects, and more. Browse the [tool catalog](src/tools.ts).
89
- - **Choose the tools you expose:** named toolsets, an allowlist, and an optional read-only mode narrow the callable surface.
90
- - **Preview changes:** mutating REST tools support `dry_run` request previews. Selected Work Item changes also have guards for enumeration values, custom-field keys, and user references.
91
- - **Read rich text:** supported HTML response values include a Markdown representation alongside the original content.
92
- - **Connect locally or remotely:** MCP over stdio or Streamable HTTP, plus a separate REST wrapper for OpenAPI Actions.
141
+ Polarion enforces the permissions of the token owner. Remote mode uses each caller's own token and the server stores none. Tool results go to your AI provider, so your organization's data policies apply.
93
142
 
94
- The count describes generated REST tools. The enabled list depends on configuration and can include additional helper tools. See [features and limits](docs/features.md).
143
+ </details>
144
+ <details><summary>Can I limit the server to read-only?</summary>
95
145
 
96
- ## Client guides
146
+ Yes: set `MCP_READ_ONLY=1` and restart. Only read tools are exposed. In write-enabled sessions every write tool can preview with `dry_run: true`.
97
147
 
98
- The website's client picker is the main setup entry. The complete reference is also available here for GitHub readers.
148
+ </details>
149
+ <details><summary>It says 401 "Polarion did not accept this token".</summary>
99
150
 
100
- <details>
101
- <summary>All client guides and compatibility notes</summary>
151
+ The token was cut off, has expired, or belongs to another Polarion. Run the token test from Before you start and create a new token.
102
152
 
103
- Entries marked “unverified” need confirmation against the vendor's current documentation. Transport and authentication labels describe the client manifest; they do not certify every setup. For a source build, use `node` with the absolute build path instead of `npx`.
153
+ </details>
154
+ <details><summary>It says 403 "Polarion denied access".</summary>
104
155
 
105
- <!-- clients:start -->
106
- | Client | Transport | Auth | Guide |
107
- |---|---|---|---|
108
- | Claude.ai / Claude Desktop (custom connectors) | Streamable HTTP, SSE | static header, oauth dcr, preregistered client | [Setup](docs/clients/claude-web-desktop.md) |
109
- | Claude Code (unverified) | stdio, Streamable HTTP, SSE | static header, oauth dcr | [Setup](docs/clients/claude-code.md) |
110
- | Claude API MCP connector (unverified) | Streamable HTTP, SSE | static header, preregistered client | [Setup](docs/clients/claude-api.md) |
111
- | ChatGPT connectors / Apps (unverified) | Streamable HTTP, SSE | oauth dcr, cimd, preregistered client | [Setup](docs/clients/chatgpt-apps.md) |
112
- | Custom GPT (Actions) (unverified) | REST action | static header, preregistered client | [Setup](docs/clients/custom-gpt.md) |
113
- | OpenAI Responses API / Agents SDK | Streamable HTTP, SSE | static header, preregistered client | [Setup](docs/clients/openai-api.md) |
114
- | Codex CLI (unverified) | stdio, Streamable HTTP, SSE | static header, oauth dcr | [Setup](docs/clients/codex-cli.md) |
115
- | VS Code Copilot | stdio, Streamable HTTP, SSE | static header, oauth dcr | [Setup](docs/clients/vscode-copilot.md) |
116
- | Microsoft Copilot Studio | Streamable HTTP | static header, oauth dcr, preregistered client | [Setup](docs/clients/copilot-studio.md) |
117
- | Cursor | stdio, Streamable HTTP, SSE | static header, oauth dcr, preregistered client | [Setup](docs/clients/cursor.md) |
118
- | Windsurf (unverified) | stdio, Streamable HTTP, SSE | static header, oauth dcr | [Setup](docs/clients/windsurf.md) |
119
- | JetBrains AI Assistant (unverified) | stdio, Streamable HTTP, SSE | none | [Setup](docs/clients/jetbrains-ai.md) |
120
- | Gemini CLI (unverified) | stdio, Streamable HTTP, SSE | static header, oauth dcr | [Setup](docs/clients/gemini-cli.md) |
121
- | Zed (unverified) | stdio, Streamable HTTP, SSE | static header, oauth dcr | [Setup](docs/clients/zed.md) |
122
- | Cline (unverified) | stdio, Streamable HTTP, SSE | static header, oauth dcr | [Setup](docs/clients/cline.md) |
123
- | n8n (unverified) | Streamable HTTP | static header, oauth dcr, preregistered client | [Setup](docs/clients/n8n.md) |
124
- <!-- clients:end -->
156
+ The token is known but refused. Check: REST enabled (`com.siemens.polarion.rest.enabled=true`), your user has a license and project access, and no proxy blocks `/polarion/rest` or the Authorization header.
125
157
 
126
158
  </details>
159
+ <details><summary>My AI client says "Disconnected" or "Failed to connect".</summary>
127
160
 
128
- ## Security and team deployment
161
+ npm: run `npx -y polarion-mcp` in a terminal with the same values to see the real error (Node older than 22 and JSON typos are common). Docker or remote: open `https://YOUR-SERVER/health`, then read `docker logs polarion-mcp`.
129
162
 
130
- Polarion controls each user's permissions. Remote MCP supports direct PAT authentication and an OAuth login flow that accepts the user's PAT. The REST wrapper instead uses the deployment's Polarion credentials and a separate API key.
163
+ </details>
164
+ <details><summary>The connector login in claude.ai or ChatGPT fails or loops.</summary>
131
165
 
132
- For team deployments, start with [deployment](docs/deployment.md), [configuration](docs/configuration.md), and [security](docs/security.md). These cover TLS and reverse proxies, redirect allowlists, token lifetimes, rate limits, and tool restrictions. [Extension interfaces](docs/extensions.md) describe policy, audit, authentication, and instance resolution hooks for custom integrations.
166
+ Check `MCP_PUBLIC_URL` (exact https address, no path), the padlock, that the redirect preset or callback is allowed (`MCP_ALLOWED_REDIRECT_PRESETS=claude`; the log says `redirect_uri rejected`), and that `MCP_TOKEN_SECRET` did not change.
133
167
 
134
- Live integration tests have passed against **Polarion 2506 and 2606**. See the [test workflow](https://github.com/phillipboesger/polarion-mcp/actions/workflows/live-polarion.yml) and [version support](docs/polarion-versioning.md) for scope and instance-dependent limits.
168
+ </details>
135
169
 
136
- Release workflows generate CycloneDX SBOMs and GitHub build provenance, and sign tagged container images with cosign. See [supply-chain verification](docs/quality/supply-chain.md) for commands and check the artifacts available for each [release](https://github.com/phillipboesger/polarion-mcp/releases).
170
+ More answers: [docs/clients.md](docs/clients.md#more-questions).
171
+ <!-- faq:end -->
137
172
 
138
- ## Documentation
173
+ ## Feedback and community
139
174
 
140
- | I want to… | Read |
141
- |---|---|
142
- | Find a guide | [Documentation index](docs/README.md) |
143
- | Configure the server | [Configuration](docs/configuration.md) |
144
- | Host it for a team | [Deployment](docs/deployment.md) |
145
- | Review authentication and controls | [Security](docs/security.md) |
146
- | Use tools and prompts | [Usage](docs/usage.md) · [Resources and prompts](docs/resources-and-prompts.md) |
147
- | Inspect API coverage | [Tool catalog](src/tools.ts) · [REST coverage](docs/quality/rest-coverage.md) |
148
- | Understand or extend it | [Architecture](docs/architecture.md) · [Extension interfaces](docs/extensions.md) |
175
+ **Feedback and questions:** [open an issue](https://github.com/phillipboesger/polarion-mcp/issues). Include what you tried, your client and server mode, and what you expected. Leave credentials out.
149
176
 
150
- ## Contributing
177
+ Nothing documented for your case? Open an issue or PR on the repo and go wild. A clearer example, a small fix or a new integration can help the next team. Read [Contributing](.github/CONTRIBUTING.md) for source builds and checks. Report vulnerabilities through the [security policy](.github/SECURITY.md).
151
178
 
152
- Bug reports, documentation fixes, and focused pull requests are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) for setup and checks, or [open an issue](https://github.com/phillipboesger/polarion-mcp/issues) to discuss a larger change.
179
+ Built by [Phillip Bösger](https://github.com/phillipboesger), building on [@Jonasdero](https://github.com/Jonasdero).
180
+
181
+ ## Documentation
153
182
 
154
- Built by [Phillip Bösger](https://github.com/phillipboesger), building on the work of [@Jonasdero](https://github.com/Jonasdero).
183
+ [Docs index](docs/README.md) · [Configuration](docs/configuration.md) · [Deployment](docs/deployment.md) · [Security](docs/security.md) · [Usage](docs/usage.md) · [Architecture](docs/architecture.md) · [Extensions](docs/extensions.md) · [Releases](https://github.com/phillipboesger/polarion-mcp/releases)
155
184
 
156
185
  ## License
157
186
 
@@ -4,7 +4,14 @@ async function readParts(args, ctx) {
4
4
  const all = [];
5
5
  const includedItems = new Map();
6
6
  for (let page = 1; page <= 100; page++) {
7
- const response = await ctx.callPolarionTool('getDocumentParts', { ...base, 'page[size]': 100, 'page[number]': page, include: 'workItem', ...(typeof args.revision === 'string' ? { revision: args.revision } : {}) });
7
+ const response = await ctx.callPolarionTool('getDocumentParts', {
8
+ ...base, 'page[size]': 100, 'page[number]': page, include: 'workItem',
9
+ fields: {
10
+ document_parts: 'type,content,headingText,level,workItem',
11
+ workitems: 'title,type,description',
12
+ },
13
+ ...(typeof args.revision === 'string' ? { revision: args.revision } : {}),
14
+ });
8
15
  if (resultFailed(response))
9
16
  return response;
10
17
  const pageRows = rows(response);
@@ -22,7 +29,9 @@ async function readParts(args, ctx) {
22
29
  for (const part of all) {
23
30
  const a = attrs(part);
24
31
  const type = String(a.type ?? '');
25
- let markdown = richMarkdown(a.content);
32
+ let markdown = typeof a.content === 'string'
33
+ ? richMarkdown({ type: 'text/html', value: a.content })
34
+ : richMarkdown(a.content);
26
35
  if (type === 'heading')
27
36
  markdown = `${'#'.repeat(Math.max(1, Math.min(6, Number(a.level ?? 0) + 1)))} ${String(a.headingText ?? '')}`;
28
37
  if (type === 'workitem') {
@@ -31,7 +40,13 @@ async function readParts(args, ctx) {
31
40
  if (!Object.keys(workItem).length && typeof workItemId === 'string') {
32
41
  const parsed = parseWorkItemId(workItemId);
33
42
  if (parsed) {
34
- const response = await ctx.callPolarionTool('getWorkItem', parsed);
43
+ const relationshipRevision = relData(part, 'workItem').revision;
44
+ const revision = typeof relationshipRevision === 'string' ? relationshipRevision : args.revision;
45
+ const response = await ctx.callPolarionTool('getWorkItem', {
46
+ ...parsed,
47
+ fields: { workitems: 'title,type,description' },
48
+ ...(typeof revision === 'string' ? { revision } : {}),
49
+ });
35
50
  if (resultFailed(response))
36
51
  return response;
37
52
  workItem = first(response);
@@ -1 +1 @@
1
- {"version":3,"file":"composite-documents.js","sourceRoot":"","sources":["../src/composite-documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composite-documents.js","sourceRoot":"","sources":["../src/composite-documents.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,7 @@ export declare function parsePolarionUrl(input: string, apiBaseUrl: string): Ent
13
13
  export declare function decodePolarionIdentifier(value: string, allowProjectWorkItemId?: boolean): string;
14
14
  export declare function registerCompositeTools(): void;
15
15
  export declare function clearCompositeToolsForTests(): void;
16
+ /** Isolated clock seam for cache expiry tests. */
17
+ export declare function setCompositeSearchClockForTests(clock: () => number): void;
16
18
  export declare const compositeTools: readonly [VirtualTool, VirtualTool, VirtualTool];
17
19
  export {};
@@ -6,6 +6,8 @@ const staticFields = new Set([
6
6
  ]);
7
7
  const fieldCache = new Map();
8
8
  const CACHE_TTL_MS = 5 * 60_000;
9
+ const CACHE_MAX_ENTRIES = 500;
10
+ let cacheClock = Date.now;
9
11
  const luceneSpecial = new Set('+-!(){}[]^"~*?:\\/|&');
10
12
  export function escapeLuceneValue(value) {
11
13
  return [...value].map(char => luceneSpecial.has(char) ? `\\${char}` : char).join('');
@@ -33,18 +35,30 @@ function fieldNames(value) {
33
35
  visit(value);
34
36
  return output;
35
37
  }
38
+ function cacheKey(projectId, ctx) {
39
+ return JSON.stringify([ctx.apiBaseUrl, ctx.userScope ?? 'anonymous', projectId]);
40
+ }
36
41
  async function workItemFields(projectId, ctx) {
37
42
  if (!projectId)
38
43
  return new Set(staticFields);
39
- const cached = fieldCache.get(projectId);
40
- if (cached && cached.expires > Date.now())
44
+ const key = cacheKey(projectId, ctx);
45
+ const cached = fieldCache.get(key);
46
+ if (cached && cached.expires > cacheClock()) {
47
+ fieldCache.delete(key);
48
+ fieldCache.set(key, cached);
41
49
  return cached.fields;
50
+ }
51
+ if (cached)
52
+ fieldCache.delete(key);
42
53
  // The project-level metadata operation is the REST equivalent of the
43
54
  // work-item-specific metadata operation (which requires an item ID).
44
55
  const result = await ctx.callPolarionTool('getProjectFieldsMetadata', { projectId, resourceType: 'workitems' });
45
- if (!result.isError && result.structuredContent) {
46
- const fields = fieldNames(result.structuredContent.data);
47
- fieldCache.set(projectId, { fields, expires: Date.now() + CACHE_TTL_MS });
56
+ const metadata = result.structuredContent?.data;
57
+ if (!result.isError && metadata !== null && typeof metadata === 'object') {
58
+ const fields = fieldNames(metadata);
59
+ fieldCache.set(key, { fields, expires: cacheClock() + CACHE_TTL_MS });
60
+ while (fieldCache.size > CACHE_MAX_ENTRIES)
61
+ fieldCache.delete(fieldCache.keys().next().value);
48
62
  return fields;
49
63
  }
50
64
  return new Set(staticFields);
@@ -102,10 +116,17 @@ export function buildWorkItemQuery(args, knownFields) {
102
116
  throw new Error(`Unknown work item field: ${field}`);
103
117
  clauses.push(`${field}:"${escapeLuceneValue(value)}"`);
104
118
  };
105
- for (const type of stringArray(args.types, 'types'))
106
- add('type', type);
107
- for (const status of stringArray(args.statuses, 'statuses'))
108
- add('status', status);
119
+ const addAlternatives = (field, values) => {
120
+ if (values.length === 1)
121
+ add(field, values[0]);
122
+ else if (values.length > 1) {
123
+ if (!knownFields.has(field))
124
+ throw new Error(`Unknown work item field: ${field}`);
125
+ clauses.push(`(${values.map(value => `${field}:"${escapeLuceneValue(value)}"`).join(' OR ')})`);
126
+ }
127
+ };
128
+ addAlternatives('type', stringArray(args.types, 'types'));
129
+ addAlternatives('status', stringArray(args.statuses, 'statuses'));
109
130
  if (typeof args.assignee === 'string' && args.assignee)
110
131
  add('assignee.id', args.assignee);
111
132
  if (typeof args.text === 'string' && args.text) {
@@ -129,7 +150,7 @@ export function buildWorkItemQuery(args, knownFields) {
129
150
  clauses.push(`${field}:["${escapeLuceneValue(args[arg])}" TO *]`);
130
151
  }
131
152
  }
132
- return clauses.length ? clauses.join(' AND ') : '*';
153
+ return clauses.join(' AND ');
133
154
  }
134
155
  function pageSize(args) {
135
156
  const value = args.page_size ?? args.max_items;
@@ -161,13 +182,18 @@ const searchTool = {
161
182
  }
162
183
  const limit = pageSize(args);
163
184
  const toolName = typeof args.projectId === 'string' ? 'getWorkItems' : 'getAllWorkItems';
164
- const callArgs = { query, ...(sort ? { sort } : {}), ...(limit ? { page_size_: limit } : {}), ...(args.max_items ? { max_items: args.max_items } : {}) };
185
+ const callArgs = {
186
+ ...(query ? { query } : {}),
187
+ ...(args.fields && typeof args.fields === 'object' ? { fields: args.fields } : { fields: { workitems: 'type,title,status,created,updated' } }),
188
+ ...(sort ? { sort } : {}), ...(limit ? { page_size_: limit } : {}), ...(args.max_items ? { max_items: args.max_items } : {}),
189
+ };
165
190
  if (typeof args.projectId === 'string')
166
191
  callArgs.projectId = args.projectId;
167
192
  const result = await ctx.callPolarionTool(toolName, callArgs);
168
193
  if (result.isError)
169
194
  return result;
170
- const data = result.structuredContent?.data;
195
+ const source = result.structuredContent;
196
+ const data = source?.data;
171
197
  const items = Array.isArray(data) ? data.map(item => {
172
198
  if (!item || typeof item !== 'object')
173
199
  return item;
@@ -181,7 +207,11 @@ const searchTool = {
181
207
  concise.resourceType = resource.type;
182
208
  return concise;
183
209
  }) : result.content;
184
- return textResult({ query, results: items });
210
+ return textResult({ query, results: items,
211
+ ...(source?.links !== undefined ? { links: source.links } : {}),
212
+ ...(source?.meta && typeof source.meta === 'object' && source.meta.totalCount !== undefined
213
+ ? { totalCount: source.meta.totalCount } : {}),
214
+ ...(source?.truncated === true ? { truncated: true } : {}), });
185
215
  },
186
216
  };
187
217
  const lintTool = {
@@ -318,6 +348,8 @@ export function registerCompositeTools() {
318
348
  return;
319
349
  unregister = [searchTool, lintTool, resolveTool].map(tool => registerVirtualTool(tool));
320
350
  }
321
- export function clearCompositeToolsForTests() { unregister.splice(0).forEach(remove => remove()); fieldCache.clear(); }
351
+ export function clearCompositeToolsForTests() { unregister.splice(0).forEach(remove => remove()); fieldCache.clear(); cacheClock = Date.now; }
352
+ /** Isolated clock seam for cache expiry tests. */
353
+ export function setCompositeSearchClockForTests(clock) { cacheClock = clock; }
322
354
  export const compositeTools = [searchTool, lintTool, resolveTool];
323
355
  //# sourceMappingURL=composite-search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"composite-search.js","sourceRoot":"","sources":["../src/composite-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composite-search.js","sourceRoot":"","sources":["../src/composite-search.ts"],"names":[],"mappings":"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"}