What tool calling and MCP actually mean, and how they fit together when you're building real AI products.
I've been building Pulse, a voice AI co-pilot for engineering work that talks to Jira and GitHub. The idea is simple: speak a command, Claude figures out what to do, your project management tools respond.
To make it work, I had to give Claude the ability to interact with Jira and GitHub. So I did what most people do when they start building with LLMs: I wrote the tools by hand.
tools: [
{ name: "create_jira_ticket", description: "\"...\", input_schema: { ... } },"
{ name: "get_jira_issue", description: "\"...\", input_schema: { ... } },"
{ name: "update_jira_status", description: "\"...\", input_schema: { ... } },"
]
Three tools. Done. It worked fine.
Then I learned what an MCP server actually is, and I realised I had been building with a teaspoon when a fire hose was sitting right there.
First, what is tool calling?
When you build an LLM application, the model lives in a box. It can think, reason, and generate text, but it cannot do anything in the real world on its own.
Tool calling is how you fix that. You define a set of functions and tell the model they exist. When the model decides one is needed, it calls it with the right arguments. Your code executes the function and passes the result back to the model.
User gives instruction
↓
Claude decides which tool to call
↓
Your code executes it
↓
Claude gets the result and responds
It's powerful. But you write every tool yourself. You define the schema, you maintain it, you add new ones when you need them.
So what is an MCP server?
MCP stands for Model Context Protocol. The simplest way I can explain it:
Tool calling is giving Claude a telephone. MCP is giving Claude a universal remote control.
The telephone analogy works because with hand-rolled tools, you're wiring up each number yourself. You decide what Claude can call, you write the definition, you maintain it forever.
An MCP server is a running process that speaks a standard protocol. Claude connects to it and asks: "what tools do you have?" The server responds with a full list. Claude now knows everything it can do without you having written a single tool definition.
More concretely:
| Tool Calling | MCP Server | |
|---|---|---|
| What it is | Functions you define manually | A running server Claude connects to |
| Setup | You write each function and schema | Server exposes its tools automatically |
| Reusability | Tied to your app | Any AI that speaks MCP can use it |
| Maintenance | Yours forever | The server owner's problem |
Jira has an MCP server. GitHub has an MCP server. Instead of my 3 hand-rolled tools, I can point Pulse at both servers and Claude automatically gets access to the full API surface of each product.
Sprints. PRs. Worklogs. Reviews. Branches. Comments. Issue history.
Same voice interface. Dramatically larger capability surface.
The part that actually blew my mind
Claude can reason across multiple MCP servers simultaneously.
So instead of three isolated tool calls, you can say:
"Find all Jira tickets marked Done this sprint, check if the linked PR was actually merged, and flag any that say Done but the PR is still open."
That used to be a custom script someone had to write, test, and maintain. With MCP, it's a voice command.
And when Jira ships new API features? The MCP server updates. Claude automatically has access. You change nothing.
The broader point
Most people are still thinking about AI as a chatbot. You ask it something, it answers.
What I've been building toward is composing intelligence over systems. Claude isn't just answering questions. It's reasoning across your Jira board, your GitHub history, and your internal data, then taking action.
The tools that make that possible are not complicated individually. What takes work is understanding how they fit together and when to use each one.
That's what I'm figuring out in public, one project at a time.
I'm Rue, a Full Stack and AI Engineer building Pulse and writing about what I learn along the way. Follow along on Instagram at @rue.on.ai or connect with me on LinkedIn.
Top comments (0)