testmo-mcp

testmo-mcp

MCP server that integrates with Testmo to let AI assistants read projects, runs, results, and test cases, and create or update runs, results, and cases via natural language.

Category
访问服务器

README

testmo-mcp

A small local Model Context Protocol (MCP) server that provides seamless integration with the Testmo test management platform by exposing [Testmo (https://www.testmo.com/)'s REST API as tools so an MCP client (Claude Desktop, Claude Code, etc.) can read your projects/runs/results and create or update runs, results and test cases without any hosting and without pasting data back and forth.

It runs on your machine and talks to your Testmo instance over HTTPS using an API token you supply via environment variables. The token is never written to disk by the server.

Tools

Read

Tool What it does
testmo_list_projects List all projects
testmo_list_runs List manual runs in a project (name/closed/milestone filters, pagination)
testmo_get_run One run's summary (status counts, totals)
testmo_list_results Recorded results for a run
testmo_list_statuses Result status IDs for a project (Passed/Failed/…)
testmo_list_states Workflow state IDs (run/case/session) — for state_id when creating
testmo_list_templates Case template IDs — for template_id / custom fields
testmo_list_cases List repository cases (folder/name/template filters)
testmo_get Raw GET against any /api/v1 path (escape hatch)

Write (create/update — no delete)

Tool What it does
testmo_record_result Record a result for one test
testmo_record_results_bulk Record results for 1–100 tests in one request
testmo_create_run Create a manual run (name, state_id, include_all required)
testmo_update_run Update a run; set is_closed=true to close it
testmo_create_cases Create 1–100 repository cases (steps go in custom.custom_steps)
testmo_update_cases Update 1–100 cases by ids (same fields applied to all)

There is intentionally no delete tool — destructive operations are left out so the server can't remove data.

Requirements

  • Node.js 18+ (node --version)
  • A Testmo instance and an API access key (Testmo → User Profile → API access)

Installation

# 1. Clone the repo
git clone https://github.com/<your-account>/testmo-mcp.git
cd testmo-mcp

# 2. Install dependencies
npm install

# 3. (Optional) verify it starts — Ctrl+C to exit
TESTMO_INSTANCE=https://your-team.testmo.net TESTMO_TOKEN=your-testmo-api-key node index.js
# → prints: [testmo-mcp] ready on stdio

Then wire it into your MCP client (below). You don't run the server yourself in normal use — the client launches it for you.

Configure your MCP client

Set the environment variables (see .env.example) and point your client at index.js. For Claude Desktop, edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/) and add:

{
  "mcpServers": {
    "testmo": {
      "command": "/absolute/path/to/node",
      "args": ["/absolute/path/to/testmo-mcp/index.js"],
      "env": {
        "TESTMO_INSTANCE": "https://your-team.testmo.net",
        "TESTMO_TOKEN": "your-testmo-api-key"
      }
    }
  }
}

Tips:

  • Use the absolute path to node (run which node). GUI apps often launch with a minimal PATH and can't find a bare node.
  • Fully quit and reopen the client so it re-spawns the server.

Environment variables

Var Required Purpose
TESTMO_INSTANCE yes Your Testmo URL, e.g. https://your-team.testmo.net
TESTMO_TOKEN yes API access key (Testmo → User Profile → API access)
TESTMO_DEFAULT_FOLDER_ID no Default folder for new cases so Testmo doesn't auto-create one each time

Notes & gotchas

  • This is a local server. It only works where it runs. A client session that executes in the cloud (not on your machine) can't see it — use it from a local session.
  • Testmo has no single "list every test with its name in a run" endpoint. testmo_list_results returns tests that have a recorded result, and the test_id it returns is the run_test_id you pass to testmo_record_result.
  • Linking issue-tracker tickets. Use the issues param on testmo_create_cases / testmo_update_cases. Each item needs display_id (the ticket ID) and integration_id (your Testmo issue integration). Testmo's API doesn't list integration IDs, and it can write linked issues but not read them back. To find your integration_id: check the integration in Testmo's admin area, or create a throwaway case with issues:[{display_id:"<id>", integration_id:<n>}] and read the error — Testmo tells you if an integration ID "does not exist" or "is not associated with this project," so you can find the right one, then delete the throwaway.
  • New cases default to TESTMO_DEFAULT_FOLDER_ID (when set); otherwise Testmo auto-creates a folder per create.

Security

  • The token is read from the environment only; it is never written to any file by this server. .gitignore covers .env, node_modules/, and logs.
  • Whoever configures the client stores the token in that client's config — keep it private and prefer OS secret storage where available. Rotate the key if it is ever exposed.

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选