MCP Servers
A hands-on way to learn the Model Context Protocol
This page covers every MCP server LocalLM Lab has been tested against, how to connect each one, and a couple of example prompts to try once it's connected. All of this happens in the MCP Servers panel, reachable from the menu bar tray icon.
These settings apply to both Prompt Playground and API Lab
— a connected server's enabled tools are available to the local model itself, not to
either surface individually. If you're building against API Lab's OpenAI-compatible
endpoint, any tool you've enabled here (e.g. Todoist's find-tasks-by-date) is
available to your own chat client exactly the same way it is in Prompt Playground.
Why this is here
The Model Context Protocol (MCP) is quickly becoming the standard way AI applications connect to real tools and data — the same role API Lab plays for learning the OpenAI API, MCP Servers plays for learning this. Instead of reading about client-server architecture, tool discovery, or OAuth flows in the abstract, you connect to real, production MCP servers (Slack, Linear, GitHub, and others) and watch the actual protocol exchange happen: capability negotiation, tool/resource/prompt discovery, and live tool calls, all running against your own Mac's on-device model.
You don't need to build your own MCP server, pay for API access, or set up a sandbox to start learning this — every server below is a real, publicly reachable one, and connecting to it costs nothing beyond the few minutes of setup each section describes. If you're new to MCP entirely, see Learn more about MCP at the end of this page before diving in.
Servers at a glance
| Server | Auth type | What it's for |
|---|---|---|
| DeepWiki | None | AI-generated documentation/Q&A for any public GitHub repo |
| Context7 | None | Up-to-date library/framework documentation lookup |
| GitHub | Personal Access Token | Issues, pull requests, repos, commits |
| Notion | OAuth (automatic) | Pages, databases, search, comments |
| Todoist | OAuth (automatic) | Tasks and projects |
| Linear | OAuth (automatic) | Issues, projects, users |
| Slack | OAuth (manual client) | Channels, messages, search |
| MCP reference server | OAuth (automatic) | Official spec-conformance test server — exercises tools, resources, and prompts all in one place |
"OAuth (automatic)" means: just add the server with auth type None — LocalLM Lab detects the login requirement itself and opens your browser to sign in, no setup on the service's side. "OAuth (manual client)" means the service requires you to register an app with it first (a few extra one-time steps, covered below).
⚠️ Before you start: the context budget is small
The on-device model has a fixed ~4096-token context window, shared across every enabled tool from every connected server. Most of these services expose far more tools than that budget allows — Linear exposes 50+ tools, Todoist exposes 45, and Slack, Notion, and GitHub aren't far behind.
Because of this, a newly connected server starts with every tool unchecked in the MCP Servers panel — nothing is sent to the model until you explicitly enable something. Go to the server's entry after adding it and enable only the one or two tools you actually need for what you're about to ask. Each section below names the exact tool(s) to turn on for its example prompts.
DeepWiki
- MCP Servers panel → Add Server.
- URL:
https://mcp.deepwiki.com/mcp, display name: "DeepWiki", auth type: None. - Click Add. No sign-in required — connects immediately.
DeepWiki only has 3 tools total, so it's fine to enable all of them here if you want to
explore — but for the prompts below, read_wiki_structure is the only one
actually used.
Try it (enable read_wiki_structure):
What documentation topics are available for the GitHub repo nickclyde/duckduckgo-mcp-server?
Try it (enable ask_question):
What transport protocols does the repo nickclyde/duckduckgo-mcp-server support?
⚠️ Avoid asking for a full documentation summary of a large repo in one go (the
read_wiki_contents tool) — that alone can return enough content to exceed
the on-device model's context budget. Ask about one section/topic at a time instead.
Context7
- MCP Servers panel → Add Server.
- URL:
https://mcp.context7.com/mcp, display name: "Context7", auth type: None. - Click Add. No sign-in required.
Context7 only has 2 tools (resolve-library-id, query-docs) —
both are needed together (the model resolves the library name first, then queries its
docs), so enable both.
Try it:
Show me current documentation for the React useEffect hook.
How do I set up middleware in Express?
GitHub
- On github.com: Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token.
- Scope it to a single repository you control (not all repos), with read-only permissions where possible (Contents, Issues, Pull requests, Metadata).
- Set a short expiration — this is easy to regenerate later.
- Copy the token.
- MCP Servers panel → Add Server → URL
https://api.githubcopilot.com/mcp/→ display name "GitHub" → auth type Personal Access Token → paste the token → Add.
GitHub's MCP server exposes a large tool surface across issues, PRs, repos, actions, and more — enable only what each prompt below needs.
Try it (enable get_me):
What's my GitHub username?
Try it (enable list_issues):
List the open issues in <owner>/<repo>.
Notion
- MCP Servers panel → Add Server.
- URL:
https://mcp.notion.com/mcp, display name: "Notion", auth type: None. - Click Add. Your browser opens Notion's sign-in/consent screen automatically — sign in and approve.
Try it (enable notion-search):
Search my Notion workspace for pages about "meeting notes".
⚠️ Notion's full tool list (page/database/comment/view creation and editing tools,
alongside search) can exceed the on-device context budget on its own if you enable
everything. notion-search and notion-fetch cover most
read-only lookups — only enable the write/create/update tools if you specifically need
them.
Todoist
- MCP Servers panel → Add Server.
- URL:
https://ai.todoist.net/mcp, display name: "Todoist", auth type: None. - Click Add. Your browser opens Todoist's sign-in/consent screen automatically.
Todoist's server exposes 45 tools — the largest of any server here
besides Linear. Confirmed live: enabling just 4 tools (search,
user-info, find-tasks, find-tasks-by-date)
already uses ~1,249 tokens — close to a third of the entire budget from
a small, reasonable-looking selection. Be deliberate about what you turn on.
Try it (enable find-tasks-by-date):
What tasks do I have due today in Todoist?
(find-tasks-by-date supports startDate='today', which includes overdue items too — exactly this prompt.)
Try it (enable add-tasks, ~612 tokens on its own):
Add a task to buy groceries tomorrow.
Other tools worth knowing about if you explore further: search (~79
tokens, cross-task/project search) and fetch (~88 tokens, full contents of
a task/project by ID) cover most other read-only lookups cheaply. Todoist also exposes
a todoist-task-list resource (an interactive task list
widget — click Resources… next to the User Input box in the Prompt
Playground, then Attach) and a productivity-analysis prompt
template (click Prompts… to use it).
Linear
- MCP Servers panel → Add Server.
- URL:
https://mcp.linear.app/mcp, display name: "Linear", auth type: None. - Click Add. Your browser opens Linear's sign-in screen (sign in and pick/create a workspace if prompted).
Linear's MCP server exposes over 50 tools (issues, projects, documents, releases, diffs, comments, and more) — this is the one most likely to blow the context budget if you enable more than a couple.
Try it (enable list_users):
List the Linear users.
Try it (enable list_issues):
What issues are assigned to me in Linear?
Slack
Slack doesn't support the automatic sign-in flow the other services do, so you'll need to register a small app with Slack first (once — takes about five minutes):
- Create a Slack App at api.slack.com/apps → From scratch, in a workspace you control.
- OAuth & Permissions → opt into PKCE (irreversible, but required).
- OAuth & Permissions → Redirect URLs → add
locallmlab://oauth/callback→ Save. - App Home → add a Bot User; OAuth & Permissions → Bot Token Scopes → add
users:read(the bot itself is never used — Slack just requires one to exist). - OAuth & Permissions → User Token Scopes → add the scopes you want (e.g.
channels:read,chat:write,search:read.public— the full list is athttps://mcp.slack.com/.well-known/oauth-protected-resource). - Go to
https://api.slack.com/apps/<your app ID>/app-assistantand enable MCP server access — this is a separate toggle, easy to miss. - Reinstall the app to your workspace (Slack prompts for this after any scope/config change).
- Copy the Client ID from Basic Information — no secret needed.
- In LocalLM Lab: MCP Servers panel → Add Server → URL
https://mcp.slack.com/mcp→ display name "Slack" → auth type OAuth (manual client) → paste the Client ID → Add. Your browser opens Slack's consent screen — approve it.
If something goes wrong along the way, these are the errors you're most likely to hit and what they mean:
| Error | What it means | Fix |
|---|---|---|
redirect_uri did not match any configured URIs |
Redirect URL isn't saved on the Slack app yet. | Add locallmlab://oauth/callback under step 3 and save. |
could not be installed / Invalid permissions requested / No scopes requested |
No scopes requested, a requested scope isn't declared on the app, or no Bot User + Bot Token Scope exists. | Recheck steps 4-5 — Bot User present, a Bot Token Scope added, and User Token Scopes matching what's requested. |
Connection failed (HTTP 400) in LocalLM Lab, with "App is not enabled for Slack MCP server access" |
Sign-in succeeded, but the app hasn't opted into MCP access itself. | Step 6 — the app-assistant page toggle. |
| A banner asking to "Request to Workspace Install" | Your workspace requires admin approval for any new app — unrelated to this app's config. | Approve it if you're an admin, or use a personal/test workspace instead. |
Slack's MCP server exposes about 19 tools (messaging, search, canvases, reactions, files, and more).
Try it (enable slack_search_channels):
What channels are in my Slack workspace?
Try it (enable slack_search_public or slack_search_public_and_private):
Search Slack for messages about "launch".
MCP reference server
This is the official MCP spec team's own test server — not a real productivity tool, but useful as a low-risk, low-cost way to see tools, resources, and prompts all working in one place (most other servers here only expose tools, or none of the three at once). Everything on it is safe to poke at; nothing it does affects any real account or data.
- MCP Servers panel → Add Server.
- URL:
https://example-server.modelcontextprotocol.io/mcp, display name: "MCP Test" (or anything), auth type: None. - Click Add. Your browser opens a generic sign-in/consent screen automatically.
It exposes 9 small tools — cheap enough (~606 tokens for 8 of them) that you can safely enable most of them to explore, unlike every other server on this page:
echo(~57 tokens) — echoes back the inputadd(~66 tokens) — adds two numberslongRunningOperation(~104 tokens) — demonstrates a long-running operation with progress updatessampleLLM(~96 tokens) — samples from an LLM using MCP's sampling featuregetTinyImage(~40 tokens) — returns a small test imageannotatedMessage(~125 tokens) — demonstrates content annotations/metadatagetResourceReference(~85 tokens) — returns a resource reference usable by MCP clientselicitInputs(~33 tokens) — demonstrates requesting user input with various field typesmcp_apps_hello_world(~31 tokens) — returns an interactive UI that runs in the client (pairs with the "Hello World MCP App" resource below)
Try it (enable add):
Use the add tool to add 47 and 89.
Try it (enable echo):
Echo back "testing the reference server".
Resources (Prompt Playground → Resources…): mostly tiny plaintext/binary test resources ("Resource 1" through "Resource 10", alternating plain text and binary — binary ones are correctly refused with a clear message if you try to attach them, they're not meant to be readable), plus one genuinely large one: "Hello World MCP App" — an embedded interactive HTML/JS mini-app (~113,000 tokens) that's a good way to see the size-guard rejection message in action, since it's far larger than the entire context budget on its own.
Prompts (Prompt Playground → Prompts…):
simple_prompt— no arguments, good first thing to try.complex_prompt— takes a requiredtemperatureand optionalstyleargument, good for trying the argument fill-in form.resource_prompt— takes aresourceId(1-100) and embeds that resource's content into the resulting prompt.
General troubleshooting
- Connection fails immediately, no browser opens: double-check the server URL for typos, and that auth type matches what's on this page (most servers here use None, not a specific OAuth setting — LocalLM Lab discovers the login requirement on its own).
- Browser opens but comes back with an error: the error text now names what actually went wrong (e.g. a specific permissions/config issue) rather than a generic failure — read it, it usually says exactly what to fix.
- Context-budget warning in the MCP Servers panel: every tool starts disabled when you first connect a server, but it's still possible to enable enough of them (especially on Notion, GitHub, Todoist, or Linear) to exceed the on-device model's fixed context window. Disable tools you don't need for what you're about to ask — this doesn't disconnect the server, just trims what's sent to the model.
- A tool you just added a server for isn't showing up in the model's responses: newly connected servers start with every tool unchecked by design (to protect the context budget) — go to the MCP Servers panel and enable the specific tool(s) named in this page's examples, or whichever ones match what you're asking.
Learn more about MCP
If you're a macOS developer new to MCP, these are good starting points, in roughly the order they're useful:
- modelcontextprotocol.io/introduction — a short, plain-language overview of what MCP is and why it exists (the official "USB-C for AI applications" framing).
- modelcontextprotocol.io/docs/learn/architecture — the core concepts this whole page builds on: hosts, clients, and servers; the tools/resources/prompts primitives; local (stdio) vs. remote (Streamable HTTP) transports; and a full worked example of the actual JSON-RPC exchange. Reading this alongside actually connecting a server here (Notion or Linear are good first ones — no manual setup needed) is the fastest way to make it click.
- modelcontextprotocol.io/specification/latest — the formal protocol specification, for when you want the exact wire-level detail behind something you've observed (e.g. what LocalLM Lab's context-budget warnings are protecting against, or exactly what a
tools/listresponse is required to contain). - github.com/modelcontextprotocol/servers — reference server implementations, including the source for the MCP reference server used above.
- github.com/modelcontextprotocol/inspector — the official MCP Inspector, a standalone tool for poking at a server's raw
tools/list/resources/list/prompts/listresponses directly, useful once you want to see the exact protocol traffic LocalLM Lab is making on your behalf.
Every server on this page is a real one you can point either LocalLM Lab or the Inspector at — there's no toy/sandboxed version of MCP here, which is the point.
Contact
Questions about a specific server, or run into something this page doesn't cover? Contact neuron@thisbrain.ai or join our Discord.