ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

OpenProject

โดย kar-thikรุ่น 0.5.0i★ –iรันบนเครื่อง
ชื่อใน registryio.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

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): 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

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "openproject": {
      "command": "uvx",
      "args": [
        "openproject-mcp-server"
      ],
      "env": {
        "OPENPROJECT_URL": "ใส่ค่าของคุณ",
        "OPENPROJECT_API_KEY": "ใส่ค่าของคุณ",
        "OPENPROJECT_OAUTH_TOKEN": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_READ_ONLY": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_ADMIN_TOOLS": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_DISABLE": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_PROFILE": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add openproject --env OPENPROJECT_URL='ใส่ค่าของคุณ' --env OPENPROJECT_API_KEY='ใส่ค่าของคุณ' --env OPENPROJECT_OAUTH_TOKEN='ใส่ค่าของคุณ' --env OPENPROJECT_MCP_READ_ONLY='ใส่ค่าของคุณ' --env OPENPROJECT_MCP_ADMIN_TOOLS='ใส่ค่าของคุณ' --env OPENPROJECT_MCP_DISABLE='ใส่ค่าของคุณ' --env OPENPROJECT_MCP_PROFILE='ใส่ค่าของคุณ' -- uvx openproject-mcp-server

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "openproject": {
      "command": "uvx",
      "args": [
        "openproject-mcp-server"
      ],
      "env": {
        "OPENPROJECT_URL": "ใส่ค่าของคุณ",
        "OPENPROJECT_API_KEY": "ใส่ค่าของคุณ",
        "OPENPROJECT_OAUTH_TOKEN": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_READ_ONLY": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_ADMIN_TOOLS": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_DISABLE": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_PROFILE": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "openproject": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "openproject-mcp-server"
      ],
      "env": {
        "OPENPROJECT_URL": "ใส่ค่าของคุณ",
        "OPENPROJECT_API_KEY": "ใส่ค่าของคุณ",
        "OPENPROJECT_OAUTH_TOKEN": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_READ_ONLY": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_ADMIN_TOOLS": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_DISABLE": "ใส่ค่าของคุณ",
        "OPENPROJECT_MCP_PROFILE": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • 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

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub kar-thik ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 32602 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 80% ของอีก 32602 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 32602 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

OpenProject ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: OPENPROJECT_URL, OPENPROJECT_API_KEY, OPENPROJECT_OAUTH_TOKEN

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.5.0) เข้า registry 8 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Rystic

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

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

รันบนคลาวด์★ 211อัปเดต เมื่อวานซืน
ติดตั้ง

Rystic

โดย Rystic-Inc

Start, seed, clock, inspect and diff Rystic API simulators from your agent.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx