
OpenProject CE
io.github.jtauschl由 GitHub 帳號 jtauschl 發布v0.4.4更新於 Oct 29, 2026
MCP server for OpenProject Community Edition with guarded read/write support.
概覽
針對 OpenProject 社群版的在地 MCP 伺服器,讓 AI 助理透過受控工具讀取與管理專案、工作包、會議、看板及工時紀錄。
- 可以做什麼
- 列出、建立、複製、更新與刪除專案;管理成員關係、版本與角色
- 依條件列出與搜尋工作包;建立、更新、刪除工作包,新增子任務、關聯、留言、附件與關注者;登記工時
- 建立、讀取、更新與刪除看板及已儲存的查詢,讀取檢視
- 建立、讀取、更新與刪除會議及其議程項目與結論,包含週期性會議系列
- 選用的管理功能:使用者、群組、檔案儲存連線、工作時間與非工作時間
- 輔助資料:wiki 頁面、新聞、文件、通知、說明文字與格狀檢視
- 適用情境
- 適合在自架的 OpenProject 社群版中工作、希望助理直接查詢或維護專案資料而不必手寫 REST 請求的情況。精簡的回應與專案允許清單適合需要限定在特定專案範圍內的助理。
- 執行需求
- 以 Python 套件形式透過 stdio 在本機執行(pipx、uv tool install 或 uvx)。需要 OPENPROJECT_BASE_URL 以及放在 OPENPROJECT_API_TOKEN 的 OpenProject API 權杖;只有列入 OPENPROJECT_READ_PROJECTS 的專案可讀取,寫入還需列入 OPENPROJECT_WRITE_PROJECTS。需要能連線至 OpenProject 執行個體的網路。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 OpenProject CE,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
OpenProject CE MCP
[PyPI] [Python 3.10+] [License: MIT] [MCP]
An MCP server for OpenProject that lets local AI agents read and manage project data through structured, guarded tools.
The server runs as a local subprocess of your MCP client over stdio. It wraps OpenProject API v3 and exposes typed tools for projects, work packages, memberships, versions, boards, meetings, time entries, and more.
Reading this on PyPI? All links below point to the GitHub repository — the
docs/pages and images ship in the git repo and source distribution, not in the installed package itself.
Why use this MCP
- Context-frugal by design — compact, agent-shaped responses instead of raw HAL payloads (~21 fields + ~46 links per item in the raw API). Measured up to −99% tokens per response with
select; see Context efficiency for the full numbers. - Guarded writes — every write follows a preview-then-confirm pattern; there is no way to bypass it.
- Defense-in-depth project scope — MCP read/write allowlists restrict the token's effective scope in addition to OpenProject's own server-side permissions.
- Typed tools, not a raw REST client — one call per intent (list, search, create, update) instead of hand-built HAL requests and link-following.
What you can do
Projects
- List, create, copy, update, and delete projects
- Read project configurations, lifecycle phases, and admin context
- Create, update, and delete memberships and versions; list roles
Work packages
- List and search work packages with structured filters
- Create, update, and delete work packages; create subtasks; create, update, and delete relations; add comments (no edit or delete)
- Upload, read (images and text inlined for the model), and delete attachments; add and remove watchers; read activity logs
- Log, update, and delete time entries
Boards and views
- Create, read, update, and delete saved boards (queries); read views
Meetings
- Create, read, update, and delete meetings with their agenda items, sections, and outcomes
- Manage recurring meetings: create, update, and delete series; list occurrences; initialize or cancel a single occurrence
Administration and schedules (opt-in)
- Read user accounts and group memberships
- Create, update, lock, unlock, and delete users; add and remove group members
- Read and manage file storage connections (e.g. Nextcloud)
- Read and manage users' non-working times and working hours
Supporting data
- Fetch individual wiki pages by id; create, update, and delete news; read and update documents
- Read and mark notifications; read help texts, working days, and instance configuration
- Create and inspect grids; inspect custom options
All write operations follow a preview-then-confirm pattern: call a tool once to get a validated preview, then again with confirm=true to execute. There is no way to bypass this.
Scope: Community Edition
This MCP server targets OpenProject Community Edition only. It does not support Enterprise Edition features such as:
- Placeholder Users
- Portfolios
- Programs
- Custom Actions
- Baseline Comparisons
Note: OpenProject Enterprise Edition includes its own MCP server. If you have an Enterprise license, use the official Enterprise MCP instead of this one.
How it works
- Communicates with the MCP client over stdio — no remote server, no persistent storage
- The core read groups (projects, work packages, memberships, versions, boards, meetings) are on by default, but until
OPENPROJECT_READ_PROJECTSlists a project, only project-independent tools such aslist_statuses,list_typesandget_current_userare registered. Personal, admin, user-schedule, and extended metadata tools are opt-in - The project-scoped write categories are on by default, but their tools are registered only when both
OPENPROJECT_READ_PROJECTSandOPENPROJECT_WRITE_PROJECTSlist a project, and a write reaches only projects in both. The allowlists, not the category flags, are the real gate. Personal-data, admin, and user-schedule writes are opt-in - Create and update operations validate the payload against OpenProject form endpoints before writing; delete and other simple operations execute directly once confirmed
- Project scope is enforced server-side: the MCP only exposes what the configured allowlists permit
- Responses are bounded and paginated — compact summaries, not raw HAL payloads
A core reason to use this MCP instead of calling the OpenProject REST API directly: it returns context-frugal responses instead of raw HAL payloads — and not just for listing. The numbers below are measured against the same three representative work packages (real tiktoken counts, not a bytes/4 approximation); read/search/write/batch calls all land in the same −85% to −98% range. For the full per-call-type breakdown, the tool-catalog size numbers, and how to reproduce them, see Context efficiency.
Install
This quickstart requires pipx; see Installation if it isn't installed yet.
Already use uv? uv tool install openproject-ce-mcp works the same way.
See Installation
for when plain pip install is appropriate instead, and for uvx (a
zero-install, run-on-demand alternative to installing at all).
configure collects your OpenProject URL, API token, and project scope, then
writes the config for the MCP client(s) you choose. Project-scoped is
recommended: the server is then available only in the current project.
Global makes it available everywhere. Restart your MCP client afterward,
then ask it to call get_current_user or list_projects to verify.
See Installation for requirements, updating, source installs, and uninstalling, and Clients for per-client setup guides.
Documentation
Full documentation lives in docs/, starting at the
documentation hub:
- Setup: Installation · Clients · Configuration · Troubleshooting
- Using the tools: Tool reference · Work package filters · Field hiding
- Client guides: Claude / Claude Code · Claude Desktop · Codex · Cursor · VS Code / GitHub Copilot
- Contributing: Development · Architecture · Context efficiency
Configuration essentials
Your client config (.mcp.json, .codex/config.toml, or .vscode/mcp.json)
contains your API token — treat it like a password and keep it out of version
control; choose your client-specific guide from Clients
for the exact .gitignore step. configure writes a minimal config: only the values that differ from a
safe default. The core read groups and the project-scoped write categories
are enabled by default, but their project-bound tools are registered, and
project access is granted, only once you list projects in
OPENPROJECT_READ_PROJECTS (and, for writes, in OPENPROJECT_WRITE_PROJECTS
too); that allowlist pair, not the category flags, is the real gate.
See Configuration for the full environment variable
reference and what configure --quick vs. --advanced ask.
Security
Prompt Injection
User-provided text (work-package descriptions, comments, news, wiki content) is marked with <user-content> tags and flagged in server instructions as untrusted. Agents should treat this content as data, not as instructions.
See SECURITY.md for the full security model, including prompt injection mitigations, reporting procedures, and supported versions.
Questions and bug reports
Ask questions in GitHub Discussions. Report bugs and request features in GitHub Issues. Report security vulnerabilities privately as described in SECURITY.md.
Development
main is a frozen snapshot of the last release, not the active development
branch. See CONTRIBUTING.md for which branch to clone
(active development vs. bugfixes) and the full test suite (unit,
integration, and Docker test instances).
License
MIT — see LICENSE. A single top-level license file covers the whole project; individual source files don't carry per-file copyright headers, matching common practice for MIT-licensed Python packages.
來源:README.md,提交 e61a816
工具
0版本歷史
1- v0.4.4最新Oct 29, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分