mcp_ms_project
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp_ms_projectShow me the critical path for C:/Projects/plan.mpp"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server for Microsoft Project
Fork note: this is a patched fork of albertito1998/mcp_ms_project. The original's write path didn't actually work against a real project file — three separate bugs:
requirements.txtpinnedmcp>=1.0.0, which resolves tomcp2.x today; that release renamedFastMCPtoMCPServerand the server failed to import at all. Pinned tomcp<2.
UniversalProjectReaderturns auto-numbering off when it loads an existing file (to preserve the file's own IDs), so everyaddTask()/addResource()call got a null ID and crashed._load_projectnow re-enables auto-numbering after load.Once that's fixed, the visible "ID" field (row position) stops being reliable, but every write tool matched tasks/resources against it. All lookups now match on
UniqueIDinstead.Also added
add_dependencyandremove_dependency— the original had no way to link (or unlink) tasks with a predecessor/successor relationship, which is the actual point of building a schedule.One more bug worth knowing about if you're building multi-level task hierarchies (subtasks under a parent task) across separate tool calls, which is how every write tool here actually gets used in practice: MSPDI encodes parent/child structure by task order in the file plus outline level, not an explicit parent reference.
addTask()on a project reloaded from disk appends the new child at the end of the task list instead of positioning it after the parent's other descendants — which silently corrupts the hierarchy on the next read (a later sibling can get misread as the summary task instead of the real parent)._save()now callssynchronizeTaskIDToHierarchy()before every write to keep tasks correctly grouped under their parent regardless of how many separate calls built the tree.Verified end-to-end, including a real multi-level hierarchy built through separate incremental tool calls (the same pattern an LLM client actually uses): build a schedule with these tools → open the
.xmlin MS Project / Project Plan 365 (which computes the real dates and critical path — mpxj itself doesn't schedule) → read it back withget_critical_pathand get correct results.
An MCP (Model Context Protocol) server that allows Claude and other LLM clients to read and write Microsoft Project files (.mpp) directly, without needing MS Project open.
Built on top of mpxj — a battle-tested Java library with Python bindings that supports .mpp, .mpt, .mpx, .xml, .xer and other project file formats.
Write note: mpxj does not support writing native
.mppbinary files. Write operations save to MSPDI XML (.xml) format, which Microsoft Project opens natively. Open the.xmlin MS Project and use File → Save As to convert back to.mpp.
Tools
Read
Tool | Description |
| Title, author, company, dates, task and resource counts |
| All tasks with WBS, dates, % complete, duration, cost, predecessors |
| People, equipment and materials with rates and units |
| Resource-to-task assignments with work and cost |
| Tasks on the critical path |
| Tasks past their finish date and not 100% complete |
Write
Tool | Description |
| Add a new task (or subtask under a parent) |
| Link two tasks with a predecessor/successor relationship |
| Remove a predecessor/successor link between two tasks |
| Edit name, dates, % complete, duration, notes, milestone flag |
| Remove a task |
| Add a person, equipment, or material resource |
| Edit resource name, email, max units, group, notes |
| Remove a resource (also removes its assignments) |
| Assign a resource to a task with optional units |
| Unassign a resource from a task |
| Edit title, author, company, start date, status date |
| Convert to |
Related MCP server: projectlibre-mcp
Requirements
Python 3.10+
Java 11+ (required by mpxj via JPype)
pip packages:
mcp,mpxj,JPype1
Installation
# 1. Clone the repo
git clone https://github.com/albertito1998/mcp_ms_project.git
cd mcp_ms_project
# 2. Install dependencies
pip install -r requirements.txtMake sure Java is installed and available in your PATH (
java --version).
Usage with Claude Code
claude mcp add msproject -- python /path/to/msproject_server.pyUsage with Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"msproject": {
"command": "python",
"args": ["/path/to/msproject_server.py"]
}
}
}Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS/Linux: ~/.config/Claude/claude_desktop_config.json
Example prompts
Reading:
"Summarise the project at C:/Projects/plan.mpp"
"Which tasks are overdue?"
"Show me the critical path"
"Who is assigned to which tasks?"
Writing:
"Add a task called 'UAT' starting 2025-05-01 for 3 days"
"Mark task 5 as 75% complete"
"Add Alice as a resource and assign her to task 3"
"Delete task 8 from the project"
"Update the project title to 'Q2 Rollout' and set status date to today"
"Convert plan.mpp to plan.json"
Supported input formats
Extension | Format |
| Microsoft Project (all versions) |
| Microsoft Project Template |
| Microsoft Project Exchange |
| Microsoft Project XML (MSPDI) |
| Primavera XER |
| Asta Powerproject |
Supported output formats
Extension | Format |
| Microsoft Project XML (MSPDI) — opens in MS Project |
| Microsoft Project Exchange (legacy) |
| JSON |
| Primavera XER |
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Project management MCP for AI agents with safe task reads and writes.
Your Aurentia workspace — projects, CRM, tasks, deliverables — in Claude, Cursor or any MCP client.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables Claude to perform comprehensive read and write operations on Google Docs, Sheets, and Drive folders. It supports file management, content searching, and provides resource access via custom URI schemes for seamless project context integration.
- FlicenseBqualityDmaintenanceRead, analyze, create, and edit ProjectLibre project files (.pod/.xml) from Claude using the MPXJ library.11
- AlicenseNot gradedqualityAmaintenanceEnables Claude to read and analyze project schedule files in OmniPlan (.oplx) and Microsoft Project (.mpp) formats, answering questions about tasks, milestones, resources, and progress.MIT
- AlicenseNot gradedqualityBmaintenanceRead-only MCP bridge connecting Claude Desktop to Merlin Project on Mac, allowing natural-language queries about plans, activities, resources, and project data.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tacoma628-del/mcp_ms_project'
If you have feedback or need assistance with the MCP directory API, please join our Discord server