
MCP server for controlling Microsoft Project via COM automation — 79 tools for task, resource, schedule, and baseline management
概览
Control Microsoft Project via COM automation through the Model Context Protocol (MCP). - with Microsoft Project installed (tested on MS Project 16.0) - - package: pip install mcp - for COM: pip install pywin32 - (optional, for add_recurring_task): pip install python-dateutil 1. and open a project file (or the server will create one). Every task query (get_task, get_tasks, etc.) returns a rich dict with 35+ fields including: - : When multiple projects are open, switching projects invalidates existing COM references. Always call switch_project before operating on a different file. - : undo_last supports up to 10 consecutive undos. MS Project's COM undo is less reliable than the UI's. - : Only one process can hold the COM connection. Don't open MS Project's GUI dialogs while the server is active. - : COM may return timezone-aware datetimes. The server normalizes these via _to_naive() for safe comparisons. - : MS Project's RecurringTaskInsert is a dialog-only COM method.
README
以下为原文 README 节选,完整内容请查看原文。
MS Project MCP Server
Control Microsoft Project via COM automation through the Model Context Protocol (MCP).
Prerequisites
- Windows with Microsoft Project installed (tested on MS Project 16.0)
- Python 3.10+
- mcp package:
pip install mcp - pywin32 for COM:
pip install pywin32 - python-dateutil (optional, for
add_recurring_task):pip install python-dateutil
Quick Start
-
Start MS Project and open a project file (or the server will create one).
-
Register in your
claude_desktop_config.json:
{
"mcpServers": {
"msproject": {
"command": "python",
"args": ["/path/to/msproject/server.py"]
}
}
}
- Run standalone (for testing):
python server.py
Tool Inventory (99 tools)
Project Management (7)
| Tool | Description |
|---|---|
open_project |
Open an existing .mpp file |
new_project |
Create a new blank project |
get_project_info |
Read project metadata and summary stats |
set_project_properties |
Update title, manager, start date, etc. |
save_project |
Save current project |
save_project_as |
Save as .mpp or .xml |
close_project |
Close the active project |
Task Queries (9)
| Tool | Description |
|---|---|
get_tasks |
List tasks with optional filters |
get_task |
Get a single task by UniqueID |
get_critical_path |
Return critical-path tasks |
get_tasks_by_rag |
Filter tasks by RAG status (Text1) |
get_overdue_tasks |
Incomplete tasks past their finish date |
get_tasks_by_resource |
Tasks assigned to a named resource |
search_tasks |
Full-text search across task names |
get_progress_summary |
Dashboard: progress, RAG counts, overdue |
get_wbs_structure |
Hierarchical WBS tree |
Task Mutations (12)
| Tool | Description |
|---|---|
update_task |
Update any task field (incl. priority, task type) |
bulk_update_rag |
Mass RAG status update |
bulk_update_tasks |
Mass field updates across tasks |
add_task |
Add a single task |
bulk_add_tasks |
Add many tasks at once (JSON array) |
add_recurring_task |
Create recurring task occurrences (daily/weekly/monthly) |
delete_task |
Remove a task |
set_task_mode |
Toggle auto/manual scheduling |
bulk_set_task_mode |
Mass scheduling mode update |
set_constraint |
Set scheduling constraint (ASAP/ALAP/SNET/etc.) |
clear_estimated_flags |
Clear estimated flag on all tasks |
indent_task |
Indent or outdent a task |
Dependencies (4)
| Tool | Description |
|---|---|
add_predecessor |
Create FS/SS/FF/SF link with optional lag |
bulk_add_predecessors |
Mass predecessor creation |
remove_predecessor |
Delete a dependency link |
get_task_dependencies |
Show predecessors and successors |
Resources (7)
| Tool | Description |
|---|---|
get_resources |
List all resources in the pool |
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"msproject": {
"command": "python",
"args": ["/path/to/msproject/server.py"]
}
}
}