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

Openemis Pro

作者:tixuzバージョン 1.1.0i★ –iパソコンで動く
レジストリ名io.github.tixuz/openemis-pro

インストール

概要

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

Read + write MCP server for OpenEMIS — free open-source school management system. 675 resources.

PopNx MCPの3つの柱

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

できること

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

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

インストール

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

インストールの前に

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

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

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

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

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

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

{
  "mcpServers": {
    "openemis-pro": {
      "command": "npx",
      "args": [
        "-y",
        "openemis-mcp-pro"
      ],
      "env": {
        "OPENEMIS_BASE_URL": "your-value",
        "OPENEMIS_API_KEY": "your-value",
        "OPENEMIS_USERNAME": "your-value",
        "OPENEMIS_PASSWORD": "your-value",
        "OPENEMIS_TIMEOUT_MS": "your-value",
        "OPENEMIS_CORE_IN_OPERATOR": "your-value"
      }
    }
  }
}

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

claude mcp add openemis-pro --env OPENEMIS_BASE_URL=your-value --env OPENEMIS_API_KEY=your-value --env OPENEMIS_USERNAME=your-value --env OPENEMIS_PASSWORD=your-value --env OPENEMIS_TIMEOUT_MS=your-value --env OPENEMIS_CORE_IN_OPERATOR=your-value -- npx -y openemis-mcp-pro

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

Cursorで開く

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

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

{
  "mcpServers": {
    "openemis-pro": {
      "command": "npx",
      "args": [
        "-y",
        "openemis-mcp-pro"
      ],
      "env": {
        "OPENEMIS_BASE_URL": "your-value",
        "OPENEMIS_API_KEY": "your-value",
        "OPENEMIS_USERNAME": "your-value",
        "OPENEMIS_PASSWORD": "your-value",
        "OPENEMIS_TIMEOUT_MS": "your-value",
        "OPENEMIS_CORE_IN_OPERATOR": "your-value"
      }
    }
  }
}

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

VS Codeで開く

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

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

{
  "servers": {
    "openemis-pro": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "openemis-mcp-pro"
      ],
      "env": {
        "OPENEMIS_BASE_URL": "your-value",
        "OPENEMIS_API_KEY": "your-value",
        "OPENEMIS_USERNAME": "your-value",
        "OPENEMIS_PASSWORD": "your-value",
        "OPENEMIS_TIMEOUT_MS": "your-value",
        "OPENEMIS_CORE_IN_OPERATOR": "your-value"
      }
    }
  }
}

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

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

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

自分で入力する値

  • OPENEMIS_BASE_URL 必須 env
    Base URL of your OpenEMIS instance (e.g., https://demo.openemis.org/core)
  • OPENEMIS_API_KEY 秘密 必須 env
    OpenEMIS API key (issued by the OpenEMIS admin). Required for every upstream login.
  • OPENEMIS_USERNAME env
    OpenEMIS login username. Optional — if unset, server fails closed and requires openemis_login at runtime.
  • OPENEMIS_PASSWORD 秘密 env
    OpenEMIS login password. Pairs with OPENEMIS_USERNAME for env-default auth.
  • OPENEMIS_TIMEOUT_MS env
    Request timeout in milliseconds (default 30000)
  • OPENEMIS_CORE_IN_OPERATOR env
    Set to 1 to enable native IN-operator batch GETs once your OpenEMIS Core has POCOR-9660 deployed.

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

できること

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

基本チェックi

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

  • ✓ 合格

    作者とリポジトリが一致

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

  • … 未チェック

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

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

  • … 未チェック

    ライセンスがある

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

  • – 対象外

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

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

  • – 対象外

    OAuthでサインイン

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

  • … 未チェック

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

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

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

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

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

よくある質問

Openemis Proは安全ですか?

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

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

入力が必要なもの:OPENEMIS_BASE_URL, OPENEMIS_API_KEY, OPENEMIS_PASSWORD

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

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

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

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

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

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

代わりに使えるものは?

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

代わりの候補

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

カードの見方:★ 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昨日更新
インストール

Zoo MCP

作者:KittyCAD

An MCP server that provides access to the Zoo API for various CAD operations and tools.

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

作者のREADME

READMEを開く

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


title: openemis-mcp-pro — Read + Write MCP Server for OpenEMIS School Management description: openemis-mcp-pro is the read and write MCP server that bridges AI assistants to the OpenEMIS school management information system — 678 resources, 3361 endpoints, 40 playbooks. keywords:

  • OpenEMIS
  • school management system
  • education management
  • student attendance
  • student risks
  • MCP server
  • write tools

openemis-mcp-pro — Read + Write AI Bridge for OpenEMIS School Management

A natural-language bridge between MCP-aware agents (Claude, Codex, Cursor, etc.) and any OpenEMIS school — with full read + write access.

OpenEMIS is a free, open-source school management information system developed by UNESCO and KORDIT. It runs the day-to-day administration of every kind of educational institution — kindergartens, primary schools, secondary schools, secondary vocational institutions, technical colleges, and universities — managing students, staff, attendance, assessment, infrastructure, meals, scholarships, examinations, training, and ministry-level reporting. This MCP-pro server adds full read + write access plus per-user authentication on top of any OpenEMIS school.

Translations: Русский · Español · हिन्दी · العربية

Built on top of the published OpenEMIS Core API (reference docs at api.openemis.org/core) and verified end-to-end against the public demo at [demo.openemis.org/core](https://demo.openemis.org/core) with real credentials, real data, real round-trips.

Ask in English:

*"How many current students are at Avory Primary?"*

The agent plans the calls, this MCP delivers the data, and you get the answer:

*"Avory Primary School (code P1002) has 553 currently enrolled students."*

You never write a line of code. You never see JSON. You just ask.

Status: v1.0.0 — full CRUD for non-workflow resources. Read queries work against every OpenEMIS v5 resource. Write tools (create/update/delete) are live for all resources that do not flow through the CakePHP Workflow plugin. Workflow-controlled resources (attendance, staff leave) are blocked at the tool level and redirect to the appropriate playbook.


What this is

openemis-mcp-pro is the read + write MCP server that connects AI assistants to the OpenEMIS school management system. It exposes 678 resources (students, attendance, risks, staff, exams, infrastructure) across 40 curated playbooks — 26 read and 14 write/auth. The pro distribution adds direct write tools (openemis_create, openemis_update, openemis_delete), HTTP server mode for ChatGPT Custom GPT, and per-user authentication on top of the free read-only distribution.


Why this exists

The OpenEMIS Core REST API is large — the v5 surface alone exposes 3,361 endpoints across 678 resources (Core 5.13.0). No AI agent can hold that in context, and raw Swagger-style introspection floods a conversation with noise that has nothing to do with the user's actual question.

This MCP solves that in two ways:

  1. Domain-scoped discovery. Instead of dumping the whole API into the agent's context, the openemis_discover(topic) tool narrows to the ~20–30 endpoints relevant to what the user is actually asking about ("attendance", "students", "assessment") — powered by a small curated knowledge pack of Domain-*.md notes.
  2. A single, composable getter. One openemis_get tool covers list + singleton + filtered search across every resource. The agent supplies resource + optional id + optional params (_fields, _conditions, orderby, page, limit) and the rest of the OpenEMIS CakePHP-style query DSL maps straight through.

The net effect: agents answer natural-language questions in 2–4 tool calls, not 30.


Tools

ToolSinceWhat it does
openemis_healthv0.1Pings the configured instance and reports reachability. Performs a real login round-trip — if this passes, CRUD will work.
openemis_list_domainsv0.1Lists the curated OpenEMIS domains — Attendance, Assessment, Staff, Student, Institution, Schedule, Examination, Report — each with a one-line summary. The agent uses this to figure out *where* a question lives.
openemis_discoverv0.1Input: a topic string. Output: up to 30 endpoints relevant to that topic, drawn from the domain knowledge pack and the per-instance manifest. Keeps conversations small regardless of how large the underlying API is.
openemis_list_playbooksv0.2Lists all 40 curated workflow playbooks with id, title, domain, and audience. The agent uses this to find the right step-by-step guide for a user-level task.
openemis_get_playbookv0.2Input: a playbook id. Output: the full playbook — resources, ordered steps, guidance notes, and example queries.
openemis_getv0.1Unified read tool. { resource, id?, params? } — if id is present, fetches the singleton; otherwise lists with any combination of _fields, _conditions, orderby, order, page, limit, plus any ad-hoc filter key.
openemis_createv0.3.0Create a new record. { resource, body } — non-workflow resources only. Workflow-controlled resources (e.g. institution-staff-leave) are blocked and will redirect to the appropriate playbook.
openemis_updatev0.3.0Update an existing record by id. { resource, id, body } — non-workflow resources only.
openemis_deletev0.3.0Delete a record by id. { resource, id } — non-workflow resources only.

A representative natural-language question like *"how many teachers at Avory Primary, how many vacant positions?"* resolves to three openemis_get calls — chained by the agent, narrowed by _conditions, delivered back as a single English answer. A write request like *"enrol a new student"* uses openemis_get_playbook to load the step-by-step guide, then openemis_create for each write step.


Core compatibility

Tested against OpenEMIS Core 5.13.0 (master, June 2026). Earlier 5.7 – 5.12 deployments are also supported — the API surface is backwards-compatible.

Capability flag — POCOR-9660 multi-id GET

openemis_get accepts params.ids = "1,2,3" for batch lookups. Core 5.10+ carries POCOR-9660 (?id=1,2,3 and _conditions= :IN(...) support in CrudApiController), so the handler collapses the batch into a single round-trip by default. Pointing at an older Core (5.7 – 5.9) without the native operator? Force the legacy parallel fan-out:

OPENEMIS_CORE_IN_OPERATOR=off

For composite-PK or view resources — where ids does not apply — use _conditions= :IN(1,2,3) instead; it filters any field by a value list and works regardless of this flag. Filtering on a field that does not exist on a resource now returns HTTP 400 (Core 5.10+, POCOR-9697), so use exact field names.

Verified against demo.openemis.org

Every claim in this README was proven against the public demo instance before being written:

  • POST /api/v5/login with { username, password, api_key } → JWT cached, 331 chars
  • GET /api/v5/institutions?limit=200&_fields=id,name,code → 24 institutions incl. "Avory Primary School" (id=6, code P1002)
  • GET /api/v5/institution-students?institution_id=6&student_status_id=1&limit=1 → pagination reports last_page: 553 → 553 currently enrolled students
  • GET /api/v5/academic-periods → 7 pages of real academic-year data
  • GET /api/v5/absence-types → EXCUSED, UNEXCUSED, LATE, etc.

The sample scripts/smoke-login.mjs shipped with this repo performs the login test step-by-step so you can confirm reachability against your own instance before wiring it into Claude Code.


Compatible agents

openemis-mcp speaks the Model Context Protocol over stdio — any MCP-compatible client works:

Stdio mode (local machine) — connects as a subprocess:

AgentHow to connect
Claude Code (claude CLI)claude mcp add — primary tested client, all 9 tools available
CursorAdd to .cursor/mcp.json — full tool access
Cline / Continue (VS Code)Add server in MCP settings
CodexVia gemmy-and-qwenny bridge
Any MCP clientPoint at node dist/server.js with env vars set

HTTP server mode (OPENEMIS_TRANSPORT=http, install once on Oracle/VPS) — connects by URL:

ClientHow to connect
Claude Code (remote)claude mcp add --transport http --url http://your-server:3000/mcp --header "Authorization: Bearer "
Cursor / ClineAdd remote MCP URL in settings
ChatGPT (Custom GPT)Import schema from http://your-server:3000/openapi.json → Actions → Bearer token
Any HTTP clientREST API at /api/* — see Teacher Guide

Install

Requires Node 22+ (for built-in fetch and AbortController) and Python 3.10+ (for the manifest builder and playbook generator scripts in mcp-openemis-gen/). The MCP server itself is Node-only; Python is only needed if you rebuild the manifest from source.

From GitHub
git clone https://github.com/tixuz/openemis-mcp.git

cd openemis-mcp

npm install npm run build

cp .env.example .env $EDITOR .env

Configure

.env.example documents every variable. At minimum you need the three credentials your OpenEMIS admin issues:

OPENEMIS_BASE_URL=https://demo.openemis.org/core   # or your own instance

OPENEMIS_USERNAME=admin OPENEMIS_PASSWORD=your_password OPENEMIS_API_KEY=your_api_key

Optional

OPENEMIS_TIMEOUT_MS=30000 OPENEMIS_VAULT_PATH=/absolute/path/to/domain-notes OPENEMIS_MANIFEST_PATH=/absolute/path/to/manifest.jsonl

The server logs in lazily on the first authenticated tool call, POSTing to /api/v5/login, parsing the JWT out of data.token, and caching it in memory. On a 401 it re-logs in and retries once.

OPENEMIS_VAULT_PATH points at the folder containing the curated Domain-*.md notes used by openemis_discover. If missing, discovery degrades gracefully to keyword matching against the manifest alone.

OPENEMIS_MANIFEST_PATH points at the JSONL output of the companion builder in ../mcp-openemis-gen/. If absent, the discovery tools return a friendly "manifest not built yet" hint — they don't crash.

Smoke-test reachability
set -a && source .env && set +a

node scripts/smoke-login.mjs

Expected:

[Test] Loading config...

[OK] Config loaded: baseUrl=https://demo.openemis.org/core [Test] Creating client... [OK] Client created [Test] Attempting login... [OpenEMIS] Login successful; cached JWT (331 chars) [OK] Login successful

Register with Claude Code
claude mcp add openemis \

--env OPENEMIS_BASE_URL="https://your-openemis/core" \ --env OPENEMIS_USERNAME="…" \ --env OPENEMIS_PASSWORD="…" \ --env OPENEMIS_API_KEY="…" \ --env OPENEMIS_VAULT_PATH="/absolute/path/to/vault" \ -- node "$(pwd)/dist/server.js"

Verify

claude mcp list | grep openemis

Expected: openemis: node /…/dist/server.js - ✓ Connected

Any new Claude Code session in this project will see all nine tools automatically.


Server mode (Oracle Always Free / any VPS)

Set OPENEMIS_TRANSPORT=http to run as a persistent HTTP server instead of a local subprocess. Install once on your server; every MCP-compatible client (Claude Code, Cursor, Cline, Windsurf) connects by URL.

On your server:

git clone https://github.com/tixuz/openemis-mcp-pro.git

cd openemis-mcp-pro npm install && npm run build cp .env.example .env $EDITOR .env

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

PopNxに聞く