EM

elsahafy/ms-procject-mcp

分析与监控

本页由 AI 翻译,技术细节请以原文为准。 查看原文

14 stars 10 forks 质量 67 趋势 20MIT

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

  1. Start MS Project and open a project file (or the server will create one).

  2. Register in your claude_desktop_config.json:

{
  "mcpServers": {
    "msproject": {
      "command": "python",
      "args": ["/path/to/msproject/server.py"]
    }
  }
}
  1. 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
在 GitHub 查看完整 README

安装

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"] } } }