MCP Server Tutorial for Beginners: Set Up Your First Model Context Protocol Server
You've heard about MCP servers. Maybe you saw them trending on LinkedIn, or a founder in your network mentioned they automated their entire HubSpot workflow with one. Either way, you're here to figure out what they actually are — and how to set one up.
This tutorial walks you through everything. Start to finish. No prior experience with APIs or servers required.
By the end, you'll have a working MCP server connected to Claude Desktop, and you'll understand exactly what you can build from there.
What Is MCP (Model Context Protocol)?
MCP stands for Model Context Protocol. It's an open standard created by Anthropic that lets AI models — like Claude — connect to external tools and data sources.
Think of it as a universal adapter. Your AI sits in the middle. MCP servers plug in on the outside. Each server gives the AI access to a specific tool or data source: your CRM, your Slack workspace, your database, your calendar.
Without MCP, your AI assistant is isolated. It only knows what you paste into the chat window.
With MCP, it knows what's actually happening in your business — in real time.
The technical picture (simplified)
An MCP server is a lightweight process that runs locally or on a server. It exposes a set of "tools" — functions the AI can call. When Claude needs to check your open deals in HubSpot, it calls the HubSpot MCP server. The server queries the HubSpot API, returns the data, and Claude uses it to answer your question.
You don't have to copy-paste anything. The AI fetches it directly.
Why this is a big deal
Before MCP, connecting AI to external tools required custom code for every integration. A developer had to build an API wrapper, handle authentication, write tool definitions, and maintain it all. That took weeks.
MCP standardizes the interface. One protocol. Any AI that speaks MCP can use any MCP server. The ecosystem is already large — and growing fast.
Why MCP Matters for B2B Teams
B2B revenue teams run on data. Pipeline data, customer data, billing data, product usage data. The problem is that data lives across 15+ disconnected tools.
Your CRM doesn't talk to your billing system. Your support platform can't see product usage. Your analytics dashboard is always two days behind.
MCP servers change this. They let your AI agent query all of those systems in a single conversation. Instead of switching between five tabs to prepare for a sales call, you ask Claude: "What's the current deal status for Acme Corp, what's their support ticket history, and what features are they using?" Claude queries HubSpot, Intercom, and your product database simultaneously and gives you a complete picture in seconds.
That's not a demo. That's what teams are running today.
Concrete B2B use cases
- Sales prep automation: Pull contact history, company news, and open deals before every call
- Deal review: Summarize all activity on stalled deals and suggest next steps
- Customer health scoring: Combine CRM data, billing status, and product usage into a live health score
- Weekly reporting: Auto-generate pipeline reports from live CRM data — no spreadsheet required
- Contract review: Query your document storage for contract terms alongside CRM context
Prerequisites
Before you start, you'll need:
- A Mac or Windows computer — Claude Desktop runs on both
- Claude Desktop installed — the desktop app from Anthropic (free tier works)
- Basic comfort with text files — you'll edit one JSON config file
- Node.js installed — required for most MCP servers (download from nodejs.org)
You don't need to know how to code. You're configuring, not building.
Step 1: Install Claude Desktop
Go to claude.ai/download and download Claude Desktop for your operating system.
Install it like any normal app. Sign in with your Anthropic account or create one — a free account works for getting started.
Once it's running, you'll see the familiar Claude chat interface. It works exactly like the web version at this point. The difference comes after you add MCP servers.
Verify your installation
Open Claude Desktop, start a new conversation, and type: "What tools do you have access to?"
Claude will tell you it doesn't have any tools yet. That's expected. You're about to change that.
Step 2: Find MCP Servers
The MCP ecosystem has grown quickly. There are now thousands of servers available. Here's where to find them:
Official Anthropic repository
The best starting point is the official MCP servers repository on GitHub:
github.com/modelcontextprotocol/servers
This repo contains reference implementations maintained by Anthropic. These are the most reliable and best-documented options. You'll find servers for:
- Filesystem access
- Web search (Brave)
- GitHub
- Slack
- Google Drive
- PostgreSQL databases
- SQLite
Community directories
Several community directories aggregate MCP servers across the ecosystem:
- mcp.so — searchable directory with ratings and install counts
- glama.ai/mcp/servers — curated list with quality filters
- Smithery — one-click installs for many popular servers
Vendor-built servers
Many SaaS companies now publish their own official MCP servers. HubSpot, Linear, Notion, Zapier, and others have built and maintain servers for their platforms. Check the documentation of any tool you use — there's a good chance they have one.
What to look for when evaluating an MCP server
Before installing any server, check:
- Last updated — within the last 90 days is a good sign
- Stars and forks — a proxy for community trust
- README quality — if the documentation is vague, the implementation probably is too
- Authentication method — API key is simpler than OAuth for getting started
- Active issues/PRs — shows the project is maintained
Step 3: Install Your First MCP Server
For this tutorial, we'll install the Slack MCP server. It's one of the most useful for B2B teams and has straightforward setup.
If you don't use Slack, the HubSpot MCP server follows the same pattern — we'll note the differences.
Install Node.js first
Most MCP servers run on Node.js. If you don't have it, download and install Node.js LTS from nodejs.org. Verify it's installed by opening a terminal and running:
node --version
You should see a version number like v20.11.0 or higher.
Get your Slack API token
To connect the Slack MCP server to your workspace, you need a Bot User OAuth Token.
- Go to api.slack.com/apps
- Click "Create New App" → "From scratch"
- Name your app (e.g., "Claude MCP") and select your workspace
- Go to "OAuth & Permissions" in the left sidebar
- Under "Bot Token Scopes", add these scopes:
channels:historychannels:readchat:writeim:historyusers:read
- Click "Install to Workspace" and approve the permissions
- Copy the Bot User OAuth Token — it starts with
xoxb-
Keep this token. You'll need it in the next step.
For HubSpot users
Instead of a Slack token, you'll need a HubSpot Private App access token:
- In HubSpot, go to Settings → Integrations → Private Apps
- Create a new private app with the CRM scopes you need
- Copy the access token
Step 4: Configure claude_desktop_config.json
This is the file that tells Claude Desktop which MCP servers to load. You edit it once, and Claude loads those servers every time it starts.
Find the config file
On Mac:
~/Library/Application Support/Claude/claude_desktop_config.json
On Windows:
%APPDATA%\Claude\claude_desktop_config.json
If the file doesn't exist, create it. Claude Desktop creates it automatically after the first run, but sometimes you need to create it manually.
The config structure
The config file is JSON. Here's the basic structure:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-slack"
],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token-here",
"SLACK_TEAM_ID": "T0123456789"
}
}
}
}
Replace xoxb-your-token-here with your actual Slack bot token, and T0123456789 with your Slack workspace ID. You can find your workspace ID in the URL when you're logged into Slack in a browser — it looks like T followed by uppercase letters and numbers.
Adding the HubSpot server
If you're using HubSpot instead of (or in addition to) Slack, add this block inside mcpServers:
"hubspot": {
"command": "npx",
"args": [
"-y",
"@hubspot/mcp-server"
],
"env": {
"HUBSPOT_ACCESS_TOKEN": "pat-na1-your-token-here"
}
}
Adding multiple servers
You can add as many servers as you want in the mcpServers object. Each gets its own key. Here's an example with three servers:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-...",
"SLACK_TEAM_ID": "T..."
}
},
"hubspot": {
"command": "npx",
"args": ["-y", "@hubspot/mcp-server"],
"env": {
"HUBSPOT_ACCESS_TOKEN": "pat-na1-..."
}
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/Documents"
]
}
}
}
Save the file
Save claude_desktop_config.json after editing. Use a code editor like VS Code or even Notepad — just make sure you don't introduce any syntax errors. JSON is strict about commas and brackets.
Step 5: Test It — Run Your First Command
Restart Claude Desktop completely. Close the app and reopen it. MCP servers load at startup.
Verify the servers loaded
In a new Claude conversation, ask: "What tools do you have access to?"
Claude will now list the tools from your MCP servers. For the Slack server, you'll see tools like:
slack_list_channelsslack_get_channel_historyslack_post_message
That means your server is connected and working.
Run your first real command
Try something practical. With the Slack MCP server connected:
"List all channels in my Slack workspace and tell me which ones have had activity in the last 24 hours."
Claude will call the Slack MCP server, fetch the channel list, check recent activity, and give you a real answer — not a hypothetical one.
With the HubSpot server:
"Show me all deals in the 'Proposal Sent' stage that haven't had activity in more than 7 days."
This is the difference MCP makes. Real data. Real answers.
Common Errors and Fixes
You'll probably hit at least one of these. Here's what they mean and how to fix them.
"MCP server failed to start"
Cause: Node.js isn't installed, or the command in your config is wrong.
Fix: Run node --version in your terminal. If it fails, install Node.js. If Node is installed, double-check the command and args in your config file exactly match the server's documentation.
"Spawn error" or "ENOENT"
Cause: Claude can't find the npx command.
Fix: Find the full path to npx by running which npx (Mac/Linux) or where npx (Windows) in your terminal. Use the full path in your config instead of just npx:
"command": "/usr/local/bin/npx"
"Authentication failed" or "Invalid token"
Cause: Your API token is wrong, expired, or missing required permissions.
Fix: Go back to the service (Slack, HubSpot, etc.) and regenerate the token. Make sure you added all required scopes. Copy the exact token — don't add spaces or extra characters.
"Tool not found" errors
Cause: The server loaded but a specific tool isn't available — usually a permissions issue.
Fix: Check the OAuth scopes or API permissions for your token. The server's README will list which permissions each tool requires.
JSON syntax errors
Cause: A missing comma, extra bracket, or unclosed quote in your config file.
Fix: Paste your claude_desktop_config.json into jsonlint.com and it will tell you exactly where the error is.
What to Build Next: Combining Multiple MCP Servers
One server is useful. Multiple servers connected together is where things get genuinely powerful.
Here are three multi-server setups worth building:
The sales prep stack
Combine HubSpot + Slack + a web search server. Before every call, ask Claude: "Give me a full briefing on [company name] — current deal status, recent Slack mentions, and any company news from the last 30 days."
Claude pulls from all three sources simultaneously and gives you a single briefing. Prep time goes from 20 minutes to 30 seconds.
The revenue ops dashboard
Combine HubSpot + Stripe + your database. Ask: "What's our current MRR, how many deals are in the pipeline, and what's the expected close value this quarter?" Real-time numbers from real systems.
The customer health monitor
Combine your CRM + support tool + product analytics. Ask: "Which customers are showing churn signals — high support volume, low product usage, and no recent activity from their champion?" Answers that used to require a BI analyst.
The pattern is the same regardless of your stack: connect each tool with its MCP server, then query all of them together through Claude.
Enterprise Considerations: Security and Access Control
If you're deploying MCP servers for a team — not just yourself — there are security considerations you need to address before going live.
Token management
Never put API tokens directly in config files that get checked into version control. Use environment variables or a secrets manager instead. For team deployments, tools like Doppler or AWS Secrets Manager handle this properly.
Principle of least privilege
Create dedicated API tokens for your MCP servers with only the permissions they actually need. If your sales assistant only needs to read HubSpot deals, don't give it write access to contacts.
Audit logging
Enterprise deployments should log every tool call made through MCP servers. This gives you visibility into what the AI is actually querying and lets you spot unusual patterns. Some MCP servers support logging natively; others require you to add a proxy layer.
Network access
If your MCP servers access internal databases or on-premise systems, make sure they're not exposed to the public internet. Run them behind your VPN or within your private network.
Authentication for shared servers
For team environments, consider running MCP servers as shared services rather than individually on each employee's machine. This centralizes access control and makes it easier to rotate credentials.
FAQ
Q: Is MCP only for Claude, or does it work with other AI models?
MCP is an open standard. Claude supports it natively since Anthropic created it, but other AI systems are adding MCP support. The protocol is model-agnostic by design — any AI that implements the client side can use any MCP server.
Q: Do I need to know how to code to set up MCP servers?
No. Setting up existing MCP servers is configuration work, not programming. You're editing a JSON file and getting API tokens. That said, if you want to build custom MCP servers for internal tools, you'll need some development experience.
Q: Are MCP servers safe? Can they do things I don't want them to do?
MCP servers can only do what you give them permission to do. The tools they expose are defined by the server, and Claude will ask before performing actions that modify data (posting messages, updating records, etc.). You control what's installed and what permissions each server has.
Q: How many MCP servers can I run at once?
There's no hard limit. In practice, most teams run 5-15 servers. Performance depends on your machine — each server is a separate process. On modern hardware, 10-15 servers run without any noticeable impact.
Q: What's the difference between an MCP server and a plugin or extension?
Plugins are typically platform-specific and require the platform's permission to distribute. MCP servers are standalone processes that run on your infrastructure, speak an open protocol, and aren't locked to any platform. You own and control them completely.
Q: Can I build my own MCP server for an internal tool?
Yes. Anthropic publishes SDKs for building MCP servers in TypeScript, Python, and other languages. If your internal tool has an API, you can build an MCP server that wraps it. This is exactly what Shyft does for B2B clients — we build custom MCP servers for internal tools that don't have public servers yet.
Q: What does it cost to use MCP servers?
The MCP protocol itself is free and open source. Running MCP servers doesn't cost anything beyond the compute to run the process (minimal). You pay for the underlying API calls to each connected service per their normal pricing — same as if you were calling their API directly.
Summary
You now know how to set up your first MCP server. Let's recap:
- Install Claude Desktop
- Find an MCP server for a tool you use (Slack, HubSpot, or any of the hundreds available)
- Get your API credentials from that tool
- Edit
claude_desktop_config.jsonto point to the server - Restart Claude and verify the tools loaded
- Start querying your real data
The real payoff comes from combining multiple servers. That's when Claude stops being a chat assistant and starts being an AI that actually knows your business.
If you want to go further — custom MCP servers for internal tools, team deployments, or full AI agent infrastructure — that's what Shyft builds. Take the free stack scan to see which of your tools are MCP-ready.