
Connecting an AI assistant to your CRM, database or ERP is useful precisely because it can act on real systems. That is also the risk. An MCP server is a new door into your business, and it is driven by a language model that can be misled.
Most problems we see are not exotic. They are familiar mistakes in a new place. Shared admin keys. Tools that can do too much. No logs. Nobody reviewing what the tool descriptions say. Each one is cheap to prevent and expensive to clean up.
What this checklist covers
MCP (Model Context Protocol) is an open standard introduced by Anthropic. It lets AI assistants such as Claude, and other clients that support it, connect to tools and data through small programs called MCP servers. Support varies by AI client, so check each client's current documentation before you plan a rollout.
Use the checklist below when you build a new MCP server, buy one, or review one that is already running. Each item has a short explanation. Treat any "no" as a finding with an owner and a date.
The MCP server security checklist
- Authenticate every user. No anonymous access and no shared accounts. For remote servers, use OAuth where the client supports it, so each person signs in with their own identity. Check the current MCP specification and your client's documentation for supported flows.
- Authorise per user and per tool. Knowing who someone is does not mean they may do everything. Pass the user's identity to downstream systems where possible, so existing permissions still apply. Otherwise, enforce role checks in the server.
- Apply least privilege. Service accounts and API tokens get the narrowest scopes that work. A tool that reads orders should not hold a token that can delete customers.
- Default to read-only. Ship read tools first. Add write tools one at a time, only when there is a clear need and an approval step.
- Keep tools narrow. "Get order status by order number" is safer than "run any API call". Narrow tools are easier to validate, test and explain.
- Validate every input. Use strict schemas with types, lengths, formats and allowed values. Reject anything else. Never pass model-generated text straight into SQL, shell commands or file paths.
- Treat tool outputs as untrusted. Emails, tickets, documents and web pages can contain instructions aimed at the model. This is prompt injection. Do not let tool output silently trigger write tools. Limit which tools can run in the same session, and strip or flag suspicious content where practical.
- Handle secrets properly. Store credentials in a secrets manager or encrypted environment settings. Never put them in code, tool descriptions, prompts or logs. Use separate credentials per environment and rotate them.
- Set rate limits and quotas. Limit calls per user and per tool. Cap result sizes and set timeouts. This protects downstream systems and contains a runaway agent loop.
- Keep audit logs. Record who called which tool, with what inputs, what happened and when. Keep personal data out of logs where you can. Make logs searchable and set a retention period.
- Require human approval for writes. Any action that changes records, sends messages or moves money shows a preview first. A named person approves it, and the approval is logged. Our guide to AI agents with human approval shows practical patterns.
- Version and review tool descriptions. The model reads tool names and descriptions to decide what to call. A changed description changes behaviour. Keep them in version control, review changes like code, and be cautious with third-party servers whose descriptions can change without notice.
How to run the review, step by step
- List every tool with its inputs, outputs, downstream system and the permissions it holds.
- Write a short threat model. For each tool, ask what happens if the model calls it with the worst plausible input.
- Walk the checklist and record each gap as a finding with a severity.
- Test prompt injection. Plant instructions in data the server returns, and confirm they do not cause unintended actions.
- Test permissions with two users who should see different data.
- Fix in priority order, starting with anything that allows unauthorised writes or data exposure.
- Repeat on every release that adds a tool or changes a description.
Tools we use
- MCP SDKs for Python and TypeScript, with strict input schemas.
- Python with FastAPI for validation, auth middleware and integration layers.
- Your identity provider for OAuth and role information.
- A secrets manager and your existing log and monitoring platform.
The MCP specification and client features evolve. Check the current specification and each vendor's documentation rather than relying on older guides.
What you need to get started
- Access to the server's code, configuration and deployment settings.
- A list of connected systems and the credentials each tool uses.
- Someone who can explain who uses the server and why.
- A staging environment for injection and permission tests.
Typical scope and timeline
As an estimate, reviewing a small server with a handful of tools often takes days rather than weeks. Building a new read-only server with these controls in place from the start typically takes one to three weeks, depending on the systems involved.
Findings we see most often
When we review existing servers, a few problems come up again and again.
- One shared token for everyone. The server works, but every user effectively has admin rights in the downstream system.
- A "do anything" tool. A generic API or SQL tool that was meant for testing and never removed.
- Secrets in the wrong place. Keys in a config file committed to the repository, or echoed into logs.
- No record of actions. Nobody can say who changed a record through the assistant last Tuesday.
- Unreviewed third-party servers. A community server installed by one engineer and now used by the whole team.
None of these needs a rewrite. Each is a focused fix, and fixing them early is far cheaper than responding to an incident.
Risks and how we handle them
The biggest risk is treating the MCP server as a quick script rather than production software. We give it the same discipline as any API: code review, tests, staged releases and monitoring. The second risk is approval fatigue, where people click approve without reading. Keep write tools few, previews short and clear, and review approval logs regularly.
When not to build this
If a vendor's official connector meets your needs and its security model satisfies your review, use it. If the data is highly regulated and cannot leave your environment, consider a private deployment first. Our guide to private RAG for regulated data explains the options. And if no one will own the server after launch, do not connect it to write-capable systems.
For specific builds, see connecting your CRM to Claude with MCP and an MCP server for database analytics.
How UnlockLive can help
UnlockLive IT is a Toronto-headquartered software agency with its own engineering team. We build these integrations for companies in the US, Canada, the UK and Australia. Our MCP server development service covers scoping, the threat model, the build, deployment and ongoing maintenance. Our cybersecurity team runs MCP security reviews and delivers a written threat model with prioritised fixes.
If you want a second opinion on scope or risk, book a free 30-minute call. Bring one or two questions your team asks every week, and we will tell you honestly whether an MCP server is the right tool.
Frequently asked questions
Are MCP servers secure?
An MCP server is as secure as its design and operation. The protocol does not make a server safe on its own. Authentication, least privilege, input validation, logging and approval for writes all have to be built in and tested.
What is prompt injection in an MCP server?
It is when text returned by a tool, such as an email, a ticket or a web page, contains instructions aimed at the AI model. If the model follows them, it may call other tools in ways the user never intended. Defences include treating tool outputs as data, limiting which tools can be combined, and requiring approval for writes.
Should an MCP server use OAuth?
Where the AI client supports it, OAuth is usually the best option for remote servers, because each user signs in with their own account and scopes. Check the current MCP specification and your client's documentation for what is supported.
Where should MCP server secrets be stored?
In a secrets manager or the platform's encrypted environment settings, never in code, tool descriptions or prompts. Use separate credentials per environment and rotate them on a schedule.
Can you audit an MCP server we already built?
Yes. A review typically covers authentication, scopes, each tool's inputs and outputs, prompt-injection exposure, secrets, logging and deployment. The output is a written list of findings with fixes in priority order.
What are the main security risks of MCP servers?
The common ones are weak or missing authentication, tools with more access than they need, prompt injection through text returned by tools, secrets stored in code or prompts, write actions without approval, and missing logs. Most are design problems rather than flaws in the protocol, which is why a checklist reviewed before launch catches the majority of them.
How we can help
- MCP Server Development ServicesCustom Model Context Protocol (MCP) servers that expose your APIs, databases, and internal tools to Claude, Cursor, ChatGPT, and any MCP-compatible AI.
- Cybersecurity & AI Security ServicesPenetration testing, SOC monitoring, SOC 2 / ISO 27001 / PCI DSS / HIPAA readiness, and emerging-area work in LLM red teaming and AI agent security.
- AI Agent DevelopmentProduction AI agents with LangChain, OpenAI Agents SDK, and Claude. RAG, tool use, multi-agent orchestration, voice, and browser-using agents.
Talk to an engineer about your project
Tell us what you are building. We reply within one business day with a candid view on scope, approach and effort.
Book a free strategy callWritten by the UnlockLive IT engineering team. UnlockLive IT Limited works with clients through its Toronto headquarters and delivers engineering from its Dhaka delivery centre. About us