Model Context Protocol
An MCP server for project management
ddx PMO is a project-management platform that builds one live record of a portfolio out of the email, chat, tracker and document traffic your teams already produce. Its MCP server puts that record inside your assistant: connect Claude, ChatGPT, Gemini or any other client that speaks the Model Context Protocol, and ask about your projects in the conversation you are already having.
Everyone connects with their own sign-in, so the assistant sees exactly what that person can see in the app — and every call is logged.
What an MCP server is
The open standard for connecting an assistant to a system of record
MCP — the Model Context Protocol — is an open standard for letting AI assistants read from the systems a business actually runs on. An MCP server publishes a set of tools; an assistant that supports MCP calls them mid-conversation to look things up, so its answer comes from your data rather than from what it remembers of the internet.
ddx PMO runs its own MCP server rather than relying on a community-built one. That is what lets it enforce the same permissions as the app: the connector is part of the product, not a wrapper around it.
What a question looks like
You ask in plain English. The assistant chooses the tools, calls them, and answers from what comes back — including saying what it could not see.
Your AI assistant
ddx PMO connectedWhat changed on the Harbour expansion risk register since the last steering meeting?
ddx PMO · tool calls
- search_artefactslast steering minutes
- whats_changed_sincerisk register · since 12 Jun
- 2 confidential rows withheld — above this login’s clearance
Two movements since 12 June: steel fabrication lead time escalated to Red, and a landlord works clash was raised on level 2 access.
One decision — the early frame order — was approved to protect the June milestone.
Illustrative conversation — sample data.
The tools
Five tools, and what each one does
This is the whole catalogue — what your assistant sees when it asks the connector what it can do. Four of the five only read. Every one of them answers within your own permissions and your own confidentiality clearance.
list_projectsList projectsReads- Lists the projects you can see in your workspace, each with its code, name and lifecycle stage. Normally the first call, because it returns the project id every other tool needs. Projects where the connector has not been switched on are not listed.
search_artefactsSearch project knowledge baseReads- Searches one project by topic or keyword: every register entry — risks, issues, decisions, action items, meeting minutes, financial documents, stakeholders and notes — plus tracker cases from ClickUp and GitHub, and the verbatim text of ingested sources, including the bodies of emails and messages and the contents of uploaded files. Matching is semantic as well as by keyword, so it finds entries that describe a problem without using your words for it.
whats_changed_sinceWhat changed since a dateReads- Reports what moved in a project’s registers since a date you give it — what became current, and what stopped being current because it was superseded or merged as a duplicate. It reads when things happened on the project rather than when they were ingested, which is what makes it answer the recap and since-the-last-report questions that keyword search cannot.
generate_documentGenerate a project documentWrites- Starts generating a versioned project document — a status report, charter, risk register or another kind from the project’s methodology — synthesised from the project’s registers. It returns an operation id immediately and the work runs in the background, because a generation can take longer than a tool call is allowed to.The one tool that writes. It adds the next version of a document and can never overwrite or delete an existing one, and it draws on the workspace’s LLM budget. It is declared to your assistant as a write, which is what makes the assistant ask you before each call.
get_document_statusCheck a document generationReads- Reports the state of a generation started by generate_document: still running, finished — with the new version number and title — or failed, with the reason.
What you are agreeing to
What stays true on every call
Connecting a system of record to an AI assistant is a security question before it is a productivity one. These are the answers, and each is a property of how the connector is built rather than a policy it follows.
Your login, your view
You connect with your own ddx PMO sign-in, through the same flow as the app — there is no shared workspace key to hand round. Your permissions and your confidentiality clearance travel with every call, and a colleague’s assistant gets their access, not yours.
It reads the record; it cannot edit it
Nothing in the catalogue can create, edit, delete or approve a register entry, upload or delete a file, send anything, or change a setting. Edits to the record still happen in the app.
The one write only ever adds
generate_document adds a new version of a document and can never overwrite or delete one. It is declared to your assistant as a write, which is what makes the assistant ask you before each call.
Every call on the record
Every question is logged and metered — who asked, which tool, and on which project — and connector spend is accounted separately from spend inside the app.
Off by default, on project by project
The connector is off until it is enabled for your workspace, and then switched on one project at a time. A project that has not been shared does not appear in the list at all.
A refusal, never a wrong answer
Ask about a project that isn’t shared and the call is refused, and told why — rather than answered as though the project were empty.
Connecting
Three steps, nothing to install
The wording differs a little between assistants, but the shape is the same everywhere. The connector has been verified end to end with Claude; other clients that implement the standard connect the same way.
- Have it switched on. The connector is enabled per workspace and then per project. If you are not sure whether yours has it, ask ddx.
- Add it as a custom connector. In your assistant’s connector settings, add a custom connector, name it ddx PMO and paste the address below.
- Sign in as yourself. The client sends you to ddx PMO to sign in and pick your workspace. Approve it, and the connector is live in your conversation.
Server address
https://api.ddxpmo.com/v1/mcp
There is nothing else to copy — no API key, no token. Sign-in and authorisation happen over OAuth, as yourself. The full walk-through, including what the consent screen asks for and what to do when a connection stops working, is in the connection guide.
Questions
What buyers ask about this
Does connecting this send our project data to an AI vendor?
Yes, and that is worth deciding deliberately rather than discovering. The results of every lookup — register entries, meeting notes, and passages of ingested emails, messages and documents — are transmitted to your assistant’s vendor to answer your question, and the conversation is then held in your own account there, under your own agreement with them. Section 8 of the Privacy Policy sets this out in full, and a workspace that would rather it did not happen can leave the connector switched off.
Can someone use it to see things they are not cleared for?
No. Every request carries the caller’s own identity, and their permissions and confidentiality clearance are applied inside the retrieval layer rather than bolted on at the edge. A project they cannot open in the app cannot be listed or searched here, and material above their clearance is not returned — the same code path the app’s own register lists go through.
What stops a document with instructions in it hijacking the assistant?
The connector serves no tool that can change your record, so the worst a hostile document can achieve through it is a poor answer. That is the reason the register-mutating tools our own in-app chat has are deliberately not served here: inside the app those changes meet a confirmation gate, and an external client has no such gate to offer.
Is it read-only?
Four of the five tools are. The fifth, generate_document, writes a new version of a project document — it cannot overwrite or delete an existing one, and it cannot touch anything else. Because it is declared to your assistant as a write, the assistant asks you before each call. We would rather say that than claim a clean “read-only” that is not quite true.
Which assistants does it work with?
Any client that implements the Model Context Protocol. We have verified it end to end with Claude; Claude, ChatGPT and Gemini are all MCP adopters, but we name only what we have tested.
The record is only worth having if you can ask it anything
Connect a project, and the answers turn up in the conversation your team is already having — grounded in what was actually recorded.
ddx PMO is invite-only while we onboard early customers — there is no public signup.