{"name":"io.github.devemberx/mcp-server-polarion","slug":"devemberx-mcp-server-polarion","title":null,"description":"MCP server for Polarion ALM — read and write documents and work items","url":"https://mcp.market/server/devemberx-mcp-server-polarion","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":36,"stars":15,"forks":4,"downloads_week":88,"last_push_at":"2026-09-23T03:48:13.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/devemberx/mcp-server-polarion","website":null,"version":"2.1.0","remotes":[],"packages":[{"registryType":"pypi","identifier":"mcp-server-polarion","version":"2.1.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Base URL of the Polarion server","isRequired":true,"name":"POLARION_URL"},{"description":"Polarion personal access token","isRequired":true,"isSecret":true,"name":"POLARION_TOKEN"},{"description":"Client-side request rate cap in requests per second; match your deployment's throttle. 0 disables pacing (default: 1)","name":"POLARION_MAX_REQUESTS_PER_SECOND"}]}],"tools":[{"name":"_fetch_document_attributes","description":"Sparse-fieldset ``attributes`` of one document, for pre-write guards. Run on dry_run too, so preview raise same not-found / auth errors as real write.","write_action":false,"price_micros":0,"input_schema":null},{"name":"copy_document","description":"Copy a document, duplicating its structure, body, and contained work items.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_document","description":"Create a document in a space.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_document_attachments","description":"Upload 1-10 local files as document attachments in one request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_document_comments","description":"Create one or more comments on a document in one request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_test_record_attachments","description":"Upload 1-10 local files as test record attachments in one request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_test_records","description":"Create 1-50 test records on one test run, recording which test cases were executed with what result.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_test_runs","description":"Create 1-50 test runs in one project in one bulk request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_work_item_attachments","description":"Upload 1-10 local files as work item attachments in one request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_work_item_comments","description":"Create one or more comments on a work item in one request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_work_item_links","description":"Create 1-50 outgoing links from one source work item, atomically.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_work_items","description":"Create 1-50 work items in one project in a single bulk request.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_work_item_links","description":"Delete 1-50 outgoing links from one source work item.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_document","description":"Get a document's metadata: title/type/status/timestamps/editors/custom fields.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_document_attachment_content","description":"Fetch a document attachment's content for viewing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_html_recipes","description":"Fetch the required HTML templates for tables, captions, links, and widgets written via update_work_items / update_document.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_sql_query_recipes","description":"Fetch copy-paste SQL recipes for the list_work_items SQL:(...) prefix.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_test_record","description":"Get full detail of one test-case iteration inside a test run: execution comment and test-case revision.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_test_record_attachment_content","description":"Fetch a test record attachment's content for viewing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_test_run","description":"Get full details of one test run by ID.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_work_item","description":"Get full details of one work item by ID.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_work_item_attachment_content","description":"Fetch a work item attachment's content for viewing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_document_attachments","description":"List a document's attachments as a paginated page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_document_comments","description":"List a document's comments as a flat page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_document_enum_options","description":"List valid enum option ids for a document field of a given type.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_documents","description":"List a project's documents.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_projects","description":"List accessible Polarion projects — the source of project ids.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_test_record_attachments","description":"List a test record's attachments as a paginated page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_test_records","description":"List execution records of one test run — one row per test case iteration. For run metadata use get_test_run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_test_runs","description":"List / search test runs in a project.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_work_item_attachments","description":"List a work item's attachments as a paginated page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_work_item_comments","description":"List a work item's comments as a flat page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_work_item_enum_options","description":"List valid enum option ids for a work item field of a given type.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_work_item_links","description":"List a work item's links, one direction per call.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_work_items","description":"List / search work items in a project.","write_action":false,"price_micros":0,"input_schema":null},{"name":"move_work_item_from_document","description":"Detach a work item from its document — the ONLY detach path.","write_action":false,"price_micros":0,"input_schema":null},{"name":"move_work_item_to_document","description":"Move an existing work item into a document at a given position.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_document","description":"Render a document end-to-end as flowing Markdown — THE way to read a body.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_document_parts","description":"List a document's structural parts in order.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_work_item","description":"Read one work item with its body rendered as Markdown.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_document","description":"","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_document_comment","description":"Resolve or re-open one document comment thread.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_test_records","description":"Set result, comment, and/or defect link on 1-50 test records of one test run in a single bulk PATCH.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_test_runs","description":"Update fields on 1-50 existing test runs in one bulk PATCH; unset fields stay unchanged. Atomic: one bad item rejects the whole batch.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_work_item_comment","description":"Resolve or re-open one work item comment.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_work_item_link","description":"Set suspect and/or revision on one existing outgoing link.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_work_items","description":"Update fields on 1-50 existing work items in one bulk PATCH; unset fields stay unchanged. hyperlinks/assignee_ids REPLACE the stored lists: even to add ONE entry, call get_work_item on the target BEFORE updating and resubmit every existing entry plus the new one — anything omitted is silently deleted. Atomic: one bad item rejects the whole batch.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-23T21:40:54.283Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T21:40:53.821Z","components":{"code":{"score":25,"max":25,"notes":["55 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"mcp-server-polarion","version":"2.1.0","found":true,"weeklyDownloads":88,"license":"MIT","dependencyCount":7,"publishedAt":"2026-08-09T16:55:27.129719Z","repositoryUrl":"https://github.com/devemberx/mcp-server-polarion"}],"repo":{"found":true,"owner":"devemberx","repo":"mcp-server-polarion","archived":false,"pushedAt":"2026-09-23T03:48:13Z","stars":15,"forks":4,"openIssues":7,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/165226627?v=4","ownerCreatedAt":"2024-03-28T00:31:07Z","license":"MIT"},"icon":{"url":"https://raw.githubusercontent.com/devemberx/mcp-server-polarion/main/.github/assets/icon.png","source":"registry","width":512,"height":512},"presence":{"stars":15,"forks":4,"downloadsWeek":88,"license":"MIT","lastPushAt":"2026-09-23T03:48:13.000Z","score":36}}}},"grade_history":[],"reviews":[]}