How to build an MCP server for Deltek Costpoint
Short answer
Build a Costpoint MCP server as a small service that exposes named read-only tools (project summary, funding status, cost by account, pool rates, timesheet exceptions) over a replica or Costpoint's supported interfaces, with per-user auth, row limits and audit logging. Any MCP client can then use it.
The Model Context Protocol gives assistants a standard way to call tools and read resources. For Costpoint, that means you write the integration once and let Claude, ChatGPT and in-house clients all use it, instead of building a separate plug-in for each.
The design question is not how to expose Costpoint, it is how little to expose. Costpoint has hundreds of tables and a lot of sensitive data. A good MCP server gives an assistant a dozen purposeful tools, each with a description that tells the model what it means, and nothing else.
This page is a build guide: what tools to start with, how to authenticate, which transport to choose, and how to keep the result auditable for a contractor environment.
What teams use it for
Project lookup for anyone
get_project returns status, customer, contract type, period of performance and funded value for a project ID, replacing a trip through several screens.
Funding and ceiling status
get_funding_status returns funded, incurred, billed and remaining amounts so an assistant can answer exposure questions consistently.
Cost drill by account and period
list_cost_by_account gives bounded, aggregated rows by account and fiscal period, with a flag showing whether the period is closed.
Indirect rate lookup
get_pool_rates returns provisional and actual rates by pool and period, so variance questions have a single source.
Timesheet exception list
list_timesheet_exceptions returns late, unapproved and rejected entries by supervisor, with no free text editing.
Resource for definitions
A resource containing your charge code policy, labor category definitions and fiscal calendar gives the model your meaning of terms.
Deltek Costpoint integration surface
- Relational database access (Oracle or SQL Server) through a read replica with a read-only login. Prefer parameterized queries stored in the server over generated SQL.
- Costpoint web services and REST style interfaces, usable as a backend where direct DB access is not allowed. Coverage differs by version and by hosted versus on-premises, so inventory what yours exposes.
- Costpoint users and roles for authorization. Map the MCP caller to a Costpoint user or role set and filter by project and organization accordingly.
- The fiscal calendar and period status tables, needed so tools can report whether a period is open or closed.
- Scheduled exports as a degraded-mode data source when live access is not permitted.
How it works
- 1
Inventory the data
List the 15 to 25 questions people actually ask, then map each to the tables or endpoints that answer them. Drop everything else.
- 2
Define tool schemas
Use JSON Schema inputs with enums for period and project type. Constrain every string, cap result rows and return stable identifiers.
- 3
Pick the transport
stdio suits a developer testing from a desktop client. Streamable HTTP behind your reverse proxy suits shared use, with TLS and an identity provider in front.
- 4
Authenticate and authorize
Use OAuth or SSO to identify the user, then enforce project and organization scope in the server code, not in the prompt.
- 5
Return answers, not dumps
Aggregate in the server, include units and period status, and add a source field naming the query so the assistant can cite it.
- 6
Add audit and rate limits
Log user, tool, parameters, row count and duration. Throttle per user to avoid accidental heavy queries on the replica.
- 7
Test with several clients
Run it from Claude, ChatGPT and an open-source client, and fix descriptions where any of them misuses a tool.
Example flows
Where are we on funding?
Trigger: A user asks any MCP client about a project's remaining funds
- Client calls get_funding_status with the project ID.
- Server checks the caller may see that project.
- Server returns funded, incurred, billed, remaining and the as-of date.
- The assistant presents the answer with the source name.
Result: A consistent answer regardless of which assistant asked.
Blocked request for unauthorized project
Trigger: A user asks about a project outside their organization scope
- The assistant calls get_project with the ID.
- The server finds no matching scope for the caller.
- It returns a not authorized error without data.
- The event is written to the audit log.
Result: No data leaks, and the attempt is visible to administrators.
Keeping data on-prem
An MCP server is just a service, so it runs wherever your Costpoint database is reachable: on a server in your data center, in your private cloud or in a controlled enclave. Keep it on the same network segment as the replica, terminate TLS with your own certificates and authenticate against your internal identity provider. Pair it with an open-weight model served locally if the assistant must also remain inside the boundary, and the whole chain, client, model, tools, data, stays on your premises. For Deltek-hosted Costpoint, you will instead run the server in your own environment and call Deltek's supported interfaces over an approved connection.
Security checklist
- Read-only database credentials on a replica; never reuse an application login with write rights.
- Server-side enforcement of project and organization scope, with deny by default.
- Treat tool results as data, and strip or neutralize free-text fields that might contain injected instructions.
- Log all calls to append-only storage and retain per your records policy.
- Pin dependencies and scan the server image; an MCP server is a new attack surface in a contractor network.
Ways to get it done
Generic database MCP server pointed at a replica
Effort: Hours to days
A quick proof of concept by a developer; not suited for production because it exposes raw tables.
Purpose-built Costpoint MCP server in-house
Effort: Three to six weeks to a validated read-only set
You have a developer and a data dictionary, and want full control of tools and scope.
Netray-built server with audit and approval layers
Effort: Scoped pilot, extend by tool
You want tools tested against closed periods, private model support and an approval path for writes.
Pitfalls
- !Exposing a run_sql tool. It defeats scoping, invites expensive queries and makes audit meaningless.
- !Omitting fiscal period status, so the model treats an open month as final.
- !Tool descriptions that assume Costpoint jargon. Spell out what each field means in your configuration.
- !Forgetting pagination, which burns context and gets truncated silently.
- !Hard-coding a service account, so audit shows the same user for everyone.
Frequently asked questions
Does Deltek provide an official MCP server?
We are not aware of a standard one, and it may change. Check with Deltek and its marketplace for your version. Until then, an MCP server you control gives you the tools you need and the governance your contracts probably require.
Which language should I use?
The official SDKs for Python and TypeScript are the common choices. Pick whichever your team can maintain and that has a good driver for your Costpoint database. The protocol is the same, so you can change later without clients noticing.
Can the MCP server write to Costpoint?
It can, but start read-only. If you add writes, make each a narrow, named tool that creates a draft or calls a specific supported interface, requires an approval and records the approver. Avoid generic update tools.
How do we keep it from slowing down Costpoint?
Use a read replica or reporting copy, set statement timeouts, cap rows and throttle per user. Aggregates should be computed on indexed columns, and expensive history queries can run on a nightly extract instead.
Does it work with ChatGPT as well as Claude?
MCP is supported across a growing set of clients, including Claude and ChatGPT in some plans and modes. Support details change, so check the current client documentation. Keeping tools generic and well described makes them portable.
Want MCP server working on your Deltek Costpoint?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment