Skip to main content
Glama
cmt-mcp

cmt-mcp

by kry0sc0pic

cmt-mcp

A read-only MCP server that lets agents look up an author's data in Microsoft CMT (cmt3.research.microsoft.com): conferences, submissions, statuses and reviews.

Unofficial. Not affiliated with or endorsed by Microsoft. It uses CMT's web API as a logged-in user; use it only with your own account and in line with CMT's terms.

Tools

Tool

Description

list_my_conferences

Conferences your account participates in

search_conferences

Search all CMT conferences by name / city / country / slug

list_submissions

Your submissions with status (compact: no abstract/files). Omit conference to pull across all your conferences

get_delta

What changed since the last get_delta call: status changes, new reviews, new submissions

get_submission

Full summary: authors, abstract, files, answers

get_reviews

Reviews visible to you for a submission

conference is the URL segment, e.g. MyConf2026 in cmt3.research.microsoft.com/MyConf2026.

Change tracking (get_delta)

Submission statuses and review counts are kept in a local SQLite cache (.cache/cmt.db, override with CMT_CACHE). get_delta fetches live data and reports only what changed since the previous get_delta call (status_changed, new_reviews, new), then moves the baseline forward. The first call only records a baseline. Pass acknowledge=false to peek without consuming the changes; list_submissions never consumes them. Listings are cached for 15 min and summaries/reviews for 6 h; pass refresh=true to force a live fetch.

Read-only by design

The client sends only GET requests plus one allowlisted read-only POST (GetSummaryView); anything else raises PermissionError. No write tools exist.

Related MCP server: msgraph-mcp

Setup

uv sync
claude mcp add cmt -e CMT_EMAIL=you@example.com -e CMT_PASSWORD=... -- uv --directory /path/to/cmt-mcp run cmt-mcp

Hermes Agent

uv run cmt-mcp-register hermes --dry-run   # preview, password masked
uv run cmt-mcp-register hermes             # prompts for email + password, writes ~/.hermes/config.yaml

It prompts for your CMT email and a hidden password (or reads CMT_EMAIL/CMT_PASSWORD if set). This adds an mcp_servers.cmt entry (backing up the old file to config.yaml.bak; YAML comments are not preserved). Then run /reload-mcp in Hermes or start a new hermes chat, and check with hermes mcp test cmt.

Auth is a plain HTTP login (CMT_EMAIL, CMT_PASSWORD) with automatic re-login when the session expires. The server reads credentials from its environment and never writes them itself. Registering with an MCP client stores them in that client's config (Claude Code: ~/.claude.json; Hermes: ~/.hermes/config.yaml, set to mode 600), so keep those files private. Accounts that require SSO/MFA are not supported.

Development

uv run pytest

Tests use an in-memory fake CMT (httpx.MockTransport), so they need no network or credentials.

tools/capture.py opens a browser (Playwright) and records XHR traffic to captures/ (git-ignored) for discovering more endpoints. Captures contain personal data and session tokens; never commit them.

License

GPL-3.0-or-later. See LICENSE.

Available Tools

6 tools
get_deltaA

What changed since the last time get_delta was called: status changes, newly posted reviews, and newly appearing submissions. Always fetches live data. conference: optional UrlSegmentName (default: all of the user's conferences). The very first call only records a baseline and returns no changes. acknowledge=false peeks without moving the baseline forward.

Inputs: conference, acknowledge.

get_reviewsB

Reviews (and their question/answer text) visible to the author for a submission.

Inputs: conference (required), submission_id (required), refresh. Returns: result

get_submissionC

Full submission summary: authors, abstract, files, subject areas, question answers, dates.

Inputs: conference (required), submission_id (required), refresh.

list_my_conferencesB

List conferences the logged-in CMT user participates in (id, name, UrlSegmentName, dates, location).

Inputs: refresh. Returns: result

list_submissionsA

List the user's submissions with status.

conference: UrlSegmentName (e.g. 'MyConf2026'). If omitted, pulls submissions across ALL of the user's conferences. Returns a compact status overview (no abstract/files; use get_submission for those). Results are cached for 15 min; set refresh=true to force a live fetch.

Inputs: refresh, conference. Returns: result

search_conferencesB

Search ALL CMT conferences (~10k) by name, city, country or UrlSegmentName. Paged via top/skip.

Inputs: top, skip, query.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a clearly distinct purpose: listing the user's conferences vs. searching all conferences, listing compact submission statuses vs. fetching full submission details, reviewing changes over time, and retrieving reviews. There is no meaningful overlap that would cause misselection.

    Naming Consistency5/5

    All tool names use a consistent snake_case verb_noun pattern (list_*, search_*, get_*). The only small variation is the modifier in list_my_conferences, but it still follows the same readable convention.

    Tool Count5/5

    Six tools is well-scoped for a focused CMT client covering conferences, submissions, reviews, and change tracking. Each tool earns its place without redundant bulk.

    Completeness4/5

    The surface covers core read-only author workflows: finding conferences, listing submissions, inspecting a submission, getting reviews, and tracking deltas. Minor gaps remain, such as no direct submission search or standalone conference-detail lookup, but agents can largely work around these.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      C
      maintenance
      Enables AI agents to access Microsoft Outlook mail and calendar, plus read-only Microsoft Teams message history, acting as the signed-in user via delegated permissions.
      50
      56 PyPI
      1
      MIT
    • F
      license
      C
      quality
      C
      maintenance
      Enables agents to authenticate to Primavera Unifier and query REST V1/V2 APIs through read-only tools and Enterprise AI workflows for shells, business process records, project health, cost/schedule analysis, risks, documents, approvals, audits, and permissions. Write operations remain gated unless explicitly enabled.
      6
      18
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to read protected computers and their check-ins, computer groups, approval requests, the unified audit log, and child organizations through a zero-trust endpoint security portal API. Every operation is read-only, with credentials supplied per request as headers and never stored.
      Apache 2.0