Builders Camp

Tools

How to Build an AI Assistant with MCP

Building an AI assistant with MCP means adding one or more MCP servers to an AI tool like Claude Code, scoping each connection's access deliberately (read-only until a task needs otherwise), and verifying the server actually started before trusting it. The protocol itself is simple; the judgment about what access to grant is where the real design work happens.

What do you need before you connect your first MCP server?

MCP assumes you already have an AI application that supports it, most commonly Claude Code, plus a specific external tool you want it to reach: a database, a project management tool like Linear, a code host like GitHub, or a local filesystem. Before adding anything, decide what the assistant actually needs to do with that tool. "Read tickets from Linear to summarize this week's bugs" is a scoped need. "Connect everything" is not a starting point, it is a security problem waiting to happen.

You do not need to write an MCP server yourself for most common tools. Popular services publish ready-to-use servers with their own setup instructions; your job is choosing which ones your assistant actually needs and configuring the access level deliberately.

How do you actually build an AI assistant with MCP, step by step?

  1. Name the specific task the assistant needs to do. Not "connect to our tools," but "read open support tickets from our helpdesk and draft a daily summary." Specificity here determines every decision that follows.
  2. Find the right MCP server for that tool. Check the service's own documentation or a public MCP server directory for an existing server, rather than building one from scratch for a common tool.
  3. Add the server with the CLI. The general shape is claude mcp add <name> -- <command> [args], with everything after the double dash being the exact command Claude Code runs to launch the server; most servers document their own version of this command directly.
  4. Choose the scope deliberately. Local scope (the default) keeps the server private to you in one project. Project scope, written to a shared .mcp.json file, gives every teammate who clones the project the same server. Pick project scope only once you actually want that shared behavior.
  5. Verify the server started correctly. Run claude mcp list and confirm the new server shows as connected, not failed; if it failed, the same command surfaces the underlying error so you can fix the command or credentials before moving on.
  6. Start read-only, and grant write access only when a task genuinely requires it. If the assistant only needs to read tickets and summarize them, do not also grant it permission to close or edit them. Add that permission later, deliberately, once a specific task needs it.
  7. Test the assistant on the exact task you scoped in step one. Confirm it can actually complete "read tickets, draft a summary" before layering on a second task or a second connected tool.

What should a PM do differently from a developer setting up MCP?

A developer setting up MCP is usually thinking about the technical plumbing: authentication, error handling, which transport a server uses. A PM should be the one asking the access-scope question out loud, explicitly, before any server gets added: what is this assistant allowed to read, and what, if anything, is it allowed to change? That question is easy to skip past when the setup itself is mechanically simple, which is exactly why it needs to be asked on purpose rather than assumed away.

A PM should also own naming the specific task the assistant is being built for, in writing, before a single server gets connected. An assistant with access to five tools and no clearly scoped task tends to accumulate capability without accumulating actual reliability, and a PM is usually better positioned than an engineer mid-setup to insist on that scoping discipline.

Where do MCP-connected assistants most often go wrong?

  • Granting write access to a connected tool by default, because it was easier than configuring read-only, then discovering the assistant changed something nobody asked it to change.
  • Connecting every tool the team uses at once, "just in case," instead of adding one server for one scoped task and expanding only when a real, specific need appears.
  • Skipping the claude mcp list verification step and assuming a server is working, only to find out later that a misconfigured command meant it was never actually connected.

What does a well-scoped first MCP setup actually look like?

Take a concrete case: a PM wants Claude Code to read open bugs from a project tracker and draft a daily triage summary. The scoped task is "read open, unassigned bugs tagged urgent from the tracker, and draft a short summary grouped by product area." That sentence already answers the access question before you add anything: this task needs read access to the tracker and nothing else, no write access to close, edit, or reassign a ticket, because the task as scoped never asks the assistant to change anything.

Add the tracker's MCP server with claude mcp add tracker -- <the server's documented command>, confirm it shows connected with claude mcp list, and test it on exactly that task: does the summary correctly group the real open, urgent, unassigned bugs, and nothing else? Only once that works, and only if a genuinely new task requires it (say, auto-assigning a bug to the right owner), should write access get added, as its own deliberate decision with its own test, not bundled into the original read-only setup because it seemed convenient to grant everything at once.

When should you stop expanding an MCP-connected assistant?

An MCP-connected assistant is a strong fit for as long as each connected tool maps to a task you can name specifically, and someone is actively deciding what access level each connection actually needs. The honest limit shows up the moment the list of connected tools grows faster than anyone is reviewing what each one can do, or the moment write access has been granted broadly "to save time" rather than deliberately per task. At that point, stop adding servers and audit the ones already connected before building anything further on top of them.

Who this is for, and who it is not for

This fits builders and developers who want Claude Code to do more than answer coding questions, structured AI systems they can reuse across projects, and PMs comfortable with technical workflows who want to speed up execution using AI pipelines, the audience Builders Camp names directly for Building with Claude Code. It assumes basic technical comfort: running a command, reading a configuration file, and understanding what an API credential is.

It is a weaker starting point for someone who has never used Claude Code or a similar coding assistant at all; Claude Code for Product Managers is the gentler entry point Builders Camp itself points newcomers toward before Building with Claude Code's own systems-level material.

Move from a single connection to a structured system

Adding one MCP server is a five-minute task. Designing an assistant with the right agents, hooks, and access boundaries so it stays reliable as it grows is the actual system-design skill. Builders Camp's Building with Claude Code bootcamp covers MCP and tool integrations directly, in 1 week, 2 live sessions, taught by Guilherme Salgueiro, with a practical challenge built around designing the governance layer, including MCP access policy, for a real, broken AI operating model.

See the Building with Claude Code bootcamp

For the coding-tool side of this same workflow, see how to build a prototype with Cursor, and for the drafting and research side an MCP-connected assistant often automates, see ChatGPT for product managers. If your goal is a fully no-code prototype instead of an assistant connected to your existing tools, how to build a prototype with Lovable is the closer fit, and how to design an AI agent covers the broader design layer above a single MCP connection.

Bootcamps referred in this Guide

Frequently asked questions

What is MCP in plain terms?

The Model Context Protocol is an open standard for connecting an AI application to external systems, described by its own documentation as working like a USB-C port for AI: one standard connection instead of a custom integration for every tool. It lets something like Claude Code query a database, call an API, or read files through a consistent interface, without a bespoke integration built for each one.

Do I need to write code to add an MCP server to Claude Code?

No, for most servers. The command follows a simple shape: 'claude mcp add <name> -- <command> [args]', where everything after the double dash is the exact command Claude Code runs to start that server. Many popular servers publish this exact command in their own documentation, ready to paste in.

What is the difference between local, project, and user scope when adding an MCP server?

Local scope, the default, is private to you and only active in the project where you added it. Project scope writes the server to a shared .mcp.json file you commit, so teammates who clone the project get the same server automatically. User scope registers the server once for every project you work in, not just one.

Is it safe to give an AI assistant write access through MCP?

Not by default, and this is the single most important design decision in an MCP setup. Treat write access as something you grant deliberately and narrowly, per Claude Code's own MCP documentation on managed server access, and prefer read-only connections until a specific task genuinely requires the assistant to change something.

What kinds of tools can an MCP server connect to?

Anything that exposes an interface a server can wrap: hosted services like Slack, GitHub, Linear, and Notion (often behind OAuth), local resources like a filesystem or a database, and custom internal tools your own team builds a server for. The protocol itself does not limit what an MCP server can represent.

How do I know if an MCP server actually started correctly?

Run 'claude mcp list', which shows every registered server and, for one that failed to start, the underlying error message. Checking this after adding a new server catches a misconfigured command before you waste time assuming a tool is connected when it is not.

Does building an AI assistant with MCP require a Builders Camp bootcamp about Claude Code specifically?

Not strictly, but the underlying discipline (structuring context, defining what an agent may and may not do, building in explicit stop conditions) is exactly what Builders Camp's Building with Claude Code bootcamp teaches, and it applies to any MCP-connected assistant, not only ones built inside that specific bootcamp's exercises.

Sources

Written by

Andre Albuquerque

Andre Albuquerque

CEO of Builders Camp, SuperOperator, and other companies. Building products.

CEO of Builders Camp, SuperOperator, and other companies. Building products.

LinkedInMore guides by Andre Albuquerque
Guilherme Salgueiro

Guilherme Salgueiro

Builder and AI systems practitioner. Guilherme helps developers, PMs, and founders move beyond prompting into structured AI system design -- building with Claude Code, agents, and automation pipelines to ship products faster and more reliably.

Builder and AI systems practitioner. Guilherme helps developers, PMs, and founders move beyond prompting into structured AI system design — building with Claude Code, agents, and automation pipelines to ship products faster and more reliably.

LinkedInMore guides by Guilherme Salgueiro

Last updated 2026-09-16

Researched from Builders Camp's bootcamp, track and masterclass material and the sources listed on this page, drafted with AI, and fact-checked against every source cited.

See the Building with Claude Code bootcamp