プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

OpenProject

作者:kar-thikバージョン 0.5.0i★ –iパソコンで動く
レジストリ名io.github.kar-thik/openproject-mcp-server

インストール

概要

作者による説明(英語の原文)

91 tools for the OpenProject API v3, with read-only, admin-gate, profile and per-group switches.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他
  • 入力が必要なもの:OPENPROJECT_URL, OPENPROJECT_API_KEY, OPENPROJECT_OAUTH_TOKEN

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: OPENPROJECT_URL, OPENPROJECT_API_KEY, OPENPROJECT_OAUTH_TOKEN, OPENPROJECT_MCP_READ_ONLY, OPENPROJECT_MCP_ADMIN_TOOLS, OPENPROJECT_MCP_DISABLE, OPENPROJECT_MCP_PROFILE

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • PyPIPythonのuvのインストール(uvxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "openproject": {
      "command": "uvx",
      "args": [
        "openproject-mcp-server"
      ],
      "env": {
        "OPENPROJECT_URL": "your-value",
        "OPENPROJECT_API_KEY": "your-value",
        "OPENPROJECT_OAUTH_TOKEN": "your-value",
        "OPENPROJECT_MCP_READ_ONLY": "your-value",
        "OPENPROJECT_MCP_ADMIN_TOOLS": "your-value",
        "OPENPROJECT_MCP_DISABLE": "your-value",
        "OPENPROJECT_MCP_PROFILE": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add openproject --env OPENPROJECT_URL=your-value --env OPENPROJECT_API_KEY=your-value --env OPENPROJECT_OAUTH_TOKEN=your-value --env OPENPROJECT_MCP_READ_ONLY=your-value --env OPENPROJECT_MCP_ADMIN_TOOLS=your-value --env OPENPROJECT_MCP_DISABLE=your-value --env OPENPROJECT_MCP_PROFILE=your-value -- uvx openproject-mcp-server

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "openproject": {
      "command": "uvx",
      "args": [
        "openproject-mcp-server"
      ],
      "env": {
        "OPENPROJECT_URL": "your-value",
        "OPENPROJECT_API_KEY": "your-value",
        "OPENPROJECT_OAUTH_TOKEN": "your-value",
        "OPENPROJECT_MCP_READ_ONLY": "your-value",
        "OPENPROJECT_MCP_ADMIN_TOOLS": "your-value",
        "OPENPROJECT_MCP_DISABLE": "your-value",
        "OPENPROJECT_MCP_PROFILE": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "openproject": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "openproject-mcp-server"
      ],
      "env": {
        "OPENPROJECT_URL": "your-value",
        "OPENPROJECT_API_KEY": "your-value",
        "OPENPROJECT_OAUTH_TOKEN": "your-value",
        "OPENPROJECT_MCP_READ_ONLY": "your-value",
        "OPENPROJECT_MCP_ADMIN_TOOLS": "your-value",
        "OPENPROJECT_MCP_DISABLE": "your-value",
        "OPENPROJECT_MCP_PROFILE": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • OPENPROJECT_URL 必須 env
    OpenProject instance root URL, e.g. https://openproject.example.com
  • OPENPROJECT_API_KEY 秘密 必須 env
    API key from My account -> Access tokens in OpenProject
  • OPENPROJECT_OAUTH_TOKEN 秘密 env
    OAuth bearer token used instead of the API key (OAuth deployments)
  • OPENPROJECT_MCP_READ_ONLY env
    Set to 1 to serve read tools only
  • OPENPROJECT_MCP_ADMIN_TOOLS env
    Set to 1 to enable the membership-write tools (hidden by default)
  • OPENPROJECT_MCP_DISABLE env
    Comma-separated tool groups to drop, e.g. meetings,budgets
  • OPENPROJECT_MCP_PROFILE env
    core (default) or full: core hides the module-backed tool groups at startup

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント kar-thik で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32568件のうち0%よりスターが多い
  • このカテゴリのほかの32568件のうち80%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32568件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

OpenProjectは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:OPENPROJECT_URL, OPENPROJECT_API_KEY, OPENPROJECT_OAUTH_TOKEN

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.5.0)がレジストリに届いたのは8 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, FlyDocs

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211昨日更新
インストール

FlyDocs

作者:flydocs.ai

Spec-driven development workflow: your agent works issues, sessions and the status lifecycle.

パソコンで動く今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

OpenProject MCP Server

An MCP (Model Context Protocol) server for the OpenProject API v3. It gives Claude and any other MCP client 91 tools covering work packages, comments and relations, attachments, git/PR activity, projects, saved queries, notifications, time tracking, versions, people and memberships, meetings, news, documents, budgets and reporting — plus 4 report/workflow prompts and 3 resource templates. Built on FastMCP 4.x and httpx (HTTP/2); speaks MCP 2026-07-28 and the earlier handshake versions.

This project is aimed at the OpenProject Community edition. OpenProject's Enterprise edition now ships with its own built-in MCP integration; this server brings the same capability to self-hosted Community instances. It runs fine against any edition — it only needs the public API v3.

Design principles, all enforced in code:

  • Structured everything. Every tool returns a typed model, so clients get an outputSchema and machine-readable structuredContent, not prose. Errors come back as a JSON envelope with a stable type, the upstream http_status, a message and a hint describing how to correct the call.
  • Honest degradation. OpenProject instances differ by version, installed modules and permissions. Tools report what they could not see as in-band notes — a missing module yields an empty page with an explanation, never a fake success or a bare traceback.
  • Safe by default. A read-only mode, admin-gated membership writes, per-group tool disabling, a confirm=true guard on every destructive tool, TLS always verified, and credentials that never appear in logs.
  • Version-adaptive. Targets OpenProject 14 LTS through 17.x; API differences are detected by a lazy, cached feature probe instead of assumptions (see Supported OpenProject versions).

What it looks like

Two exchanges against a fictional "Website Relaunch" project — every id, name and date below is invented. You describe the outcome; the model picks the tools, and what comes back to it is a typed object rather than prose to re-parse.

You         What is still open in Website Relaunch and due by Friday? The checkout

bug is urgent — raise it and leave a note for whoever owns it.

→ list_work_packages(project="website-relaunch", status_scope="open", due_before="2026-03-13", sort_by=[["due_date", "asc"]])

{ "items": [ { "id": 4821, "subject": "Checkout fails on expired coupon codes", "type": {"id": 7, "name": "Bug"}, "status": {"id": 7, "name": "In progress"}, "assignee": {"id": 118, "name": "Dana Okafor"}, "due_date": "2026-03-11" }, { "id": 4830, "subject": "Move press-kit assets to the new CDN", "type": {"id": 1, "name": "Task"}, "status": {"id": 1, "name": "New"}, "assignee": null, "due_date": "2026-03-13" }], "pagination": {"total": 2, "page": 1, "page_size": 20, "has_more": false} }

→ update_work_package(id=4821, priority="High") → add_work_package_comment(id=4821, comment="Raised to High — it blocks the launch checklist. Dana, can you take a look today?")

Assistant Two open items are due by Friday. #4821 is High now and the note is on its thread; #4830 is due Friday and still has nobody on it.

The rows above are abridged: each one also carries priority, project, start_date, percentage_done and updated_at, and the envelope keeps groups, sums and notes slots for the calls that fill them.

The prompt templates cut out the tool round trips: the server reads OpenProject itself and hands back a finished document rather than instructions to go and fetch one. It arrives prefaced with a note that the numbers are already computed and must not be recomputed or embellished.

You         /weekly_report project=website-relaunch

WEEKLY REPORT - AGILE SCRUM

_Generated from live OpenProject data_ ...

B. EXECUTIVE SUMMARY

Progress against the sprint goal: Not assessed — sprint goal and completion dates are not available

Currently closed work updated in the window:

  1. #4802 - Ship the new pricing page
  2. #4795 - Halve the hero image payload ...
Data notes
  • open/closed bucketing uses each status's isClosed flag from GET /statuses, not status names; a status this instance renamed or translated is still bucketed correctly

That last block is the house style: a report says which of its numbers are partial, and a tool that could not read something returns the gap as a note instead of guessing. The whole surface is in Tools and Prompts and resources.

Requirements

  • Python >= 3.12
  • An OpenProject instance, version 14 LTS through 17.x (any edition; aimed at Community — Enterprise ships its own MCP integration)
  • An OpenProject API key: in OpenProject, go to My account → Access tokens and generate an API token

Installation

The distribution name is openproject-mcp-server. It installs two identical console scripts, openproject-mcp-server and openproject-mcp; the long form is canonical (an unrelated PyPI package also installs a bin named openproject-mcp).

Run one-shot with uv, no install step:

uvx openproject-mcp-server

Or install persistently:

uv tool install openproject-mcp-server

or

pip install openproject-mcp-server

The minimal configuration is two environment variables:

export OPENPROJECT_URL=https://openproject.example.com

export OPENPROJECT_API_KEY=your-api-key

Validate the configuration without starting the server:

openproject-mcp-server --check

--check verifies the configuration and exits; it does not contact your instance. Once connected through a client, call the get_instance_info tool for a live end-to-end check. When configuration is missing or invalid, the server prints the specific problems to stderr and exits with code 2 — never a traceback.

Claude Code
claude mcp add openproject \

--env OPENPROJECT_URL=https://openproject.example.com \ --env OPENPROJECT_API_KEY=your-api-key \ -- uvx openproject-mcp-server

Claude Desktop and other MCP clients

Add to claude_desktop_config.json (or your client's equivalent mcpServers config):

{

"mcpServers": { "openproject": { "command": "uvx", "args": ["openproject-mcp-server"], "env": { "OPENPROJECT_URL": "https://openproject.example.com", "OPENPROJECT_API_KEY": "your-api-key" } } } }

From source
git clone https://github.com/kar-thik/openproject-mcp

cd openproject-mcp uv sync uv run openproject-mcp-server

Updating or rotating your API token

When a token is regenerated, revoked or invalidated (OpenProject major upgrades can do this — the symptom is every tool suddenly failing with authentication_failed / HTTP 401), generate a fresh one in OpenProject under My account → Access tokens and update it wherever your key lives:

  • Shell environment (easiest to rotate). The server reads OPENPROJECT_API_KEY straight from the OS environment, so you can export it globally — e.g. in ~/.zshenv — and register the server with no --env flags at all:
  claude mcp add openproject -- uvx openproject-mcp-server

Rotation is then: edit the export, open a fresh terminal, reconnect. The client config never contains a secret. (This does not work for GUI apps like Claude Desktop, which don't read your shell profile.)

  • Claude Code with `--env`. The registration stores the key, so replace it:
  claude mcp remove openproject

claude mcp add openproject \ --env OPENPROJECT_URL=https://openproject.example.com \ --env OPENPROJECT_API_KEY=new-key \ -- uvx openproject-mcp-server

Then reconnect via /mcp (a running session keeps the old environment until it does).

  • Claude Desktop and other JSON-configured clients. Edit the OPENPROJECT_API_KEY value in the client config and restart the client.
  • `.env` file. Edit the file and restart the server.

Recent OpenProject versions allow several API tokens in parallel, so you can rotate with zero downtime: create the new token, switch your clients over, then revoke the old one.

Configuration

Configuration is entirely environment-driven. The table below is the authoritative reference: the server binds exactly these 26 names and no others. Bare, unprefixed names such as READ_TIMEOUT or API_KEY are deliberately ignored (a stray variable in your shell cannot change or break the server), as is any other unknown variable. A .env file in the server's working directory is read with the same names; real environment variables take precedence. From-source users can start from .env.example.

VariableDefaultPurpose
OPENPROJECT_URL— (required)Instance root URL, e.g. https://openproject.example.com. A trailing /api/v3 is tolerated and stripped.
OPENPROJECT_API_KEY— (required*)API key from My account → Access tokens. Sent as HTTP Basic apikey: .
OPENPROJECT_OAUTH_TOKENunsetOAuth bearer token, as an alternative to the API key. *One of the two credentials is required.
OPENPROJECT_MCP_ACCEPT_LANGUAGEunsetSent as the Accept-Language header; OpenProject localizes validation messages accordingly.
OPENPROJECT_MCP_CA_BUNDLEsystem trust storePath to a CA bundle (PEM) for instances behind a private CA. TLS is always verified; there is deliberately no off switch.
OPENPROJECT_MCP_READ_ONLYfalseServe read tools only: every write, destructive and admin tool is removed at startup.
OPENPROJECT_MCP_ADMIN_TOOLSfalseExpose the three admin-gated membership write tools (hidden by default).
OPENPROJECT_MCP_DISABLEemptyComma-separated group tags to remove whole tool groups at startup (see below).
OPENPROJECT_MCP_PROFILEcorecore hides the module-backed groups at startup; a client can bring one back with enable_tool_group (see below). full lists every group.
OPENPROJECT_MCP_INSECUREfalseAllow --transport http to start without auth tokens. Local development only.
OPENPROJECT_MCP_DOWNLOAD_DIR./openproject-downloadsDirectory where download_attachment writes files (created if missing; default is relative to the server's working directory).
OPENPROJECT_MCP_UPLOAD_ROOTunsetWhen set, upload_attachment and create_work_package(attachment_paths) read only files beneath this existing directory; paths and symlinks resolving outside it are refused. Recommended for --transport http.
OPENPROJECT_MCP_DOWNLOAD_ROOTunsetWhen set, download_attachment writes only beneath this existing directory and saves there by default; a save_dir outside it is refused. Recommended for --transport http.
OPENPROJECT_MCP_MAX_DOWNLOAD_MB100Size cap for attachment downloads, in MiB.

| OPENPROJECT_MCP_MAX_INLINE_MB | 10 | Size cap for attachment bytes returned inl

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く