Skip to content

Use MCP Tools

Model Context Protocol (MCP) servers expose additional tools to Snippbot agents. Once connected, tools from MCP servers appear alongside built-in tools and can be called by any agent.

MCP is an open protocol that lets AI agents communicate with external tool servers using a standard interface. An MCP server exposes a set of tools (functions the agent can call) over either:

  • stdio — The agent launches the server as a subprocess and communicates via stdin/stdout
  • HTTP/SSE — The agent connects to an already-running HTTP server

Snippbot ships with 21 pre-built MCP server entries ready to install:

CategoryServers
Productivity & KnowledgeGoogle Drive, Microsoft 365, Notion, Slack, Obsidian
Development & DevOpsGitHub, Filesystem, PostgreSQL, Supabase, Kubernetes
Web & AutomationBrave Search, DuckDuckGo Search, Playwright Browser, Puppeteer Browser, Zapier MCP
Specialized ToolsFigma, Stripe, Blender MCP
Quality & IntelligenceContext7, Sequential Thinking, MCP Memory
  1. Open the Skills page in the sidebar

  2. Click “Add Server” or browse the Catalog tab

  3. Configure the server — fill in the form fields:

    • Name — a label for the server (e.g., “my-filesystem”)
    • Transport — select stdio or HTTP/SSE
    • Command — the executable to launch (e.g., npx)
    • Args — command arguments (e.g., -y @modelcontextprotocol/server-filesystem /workspace)
  4. Click “Connect” — Snippbot launches the server, discovers its tools, and displays them

  5. Enable the server for agents that should have access

From the Catalog tab, click any pre-built server. A configuration dialog appears where you fill in any required fields (such as a personal access token for GitHub). Click Install and the server is configured, connected, and tools discovered automatically.

MCP tools appear in agents with namespaced names to avoid conflicts:

Tools follow the naming format mcp__{server_name}__{tool_name} — for example, mcp__github__create_issue, mcp__filesystem__read_file, or mcp__postgresql__execute_query.

Agents see each tool’s description prefixed with the server name, such as “[GitHub] Create a new issue in a repository”.

When adding a server on the Skills page, you choose the transport type and fill in the relevant fields.

For servers that run as a local subprocess. Fill in:

FieldDescriptionExample
NameServer labelfilesystem
TransportSelect stdio
CommandExecutable to launchnpx
ArgsCommand arguments-y @modelcontextprotocol/server-filesystem /home/user/projects

The server process is started on demand and kept alive for the session.

For servers running as a service. Fill in:

FieldDescriptionExample
NameServer labelmy-api-server
TransportSelect HTTP/SSE
URIServer URLhttp://localhost:3000/mcp

For HTTP MCP servers that require OAuth2, expand the Authentication section in the server form and fill in:

FieldDescription
Auth TypeSelect OAuth2 Client Credentials
Token URLThe provider’s token endpoint (e.g., https://auth.example.com/oauth2/token)
Client IDYour OAuth2 client ID
Client SecretYour OAuth2 client secret
ScopeRequired scopes (e.g., mcp:read mcp:write)

Snippbot handles token acquisition, caching, and refresh automatically. Tokens are refreshed 60 seconds before expiry.

From the Skills page, select a server and click Test Connection. The result displays connection status, the number of discovered tools, latency, and server capabilities.

Manage MCP servers from the Skills page in the sidebar. You can connect, disconnect, view discovered tools, and remove servers directly from the UI. Each server card shows its connection status, discovered tools count, and provides actions to connect, disconnect, or remove.

By default, all enabled MCP servers’ tools are available to all agents. To restrict:

  1. Open the agent detail pageSettings tab

  2. Under Tools, deselect specific MCP tools or entire servers

  3. Save

When spawning a sub-agent, the parent agent can also restrict tool access. See Use Sub-Agents for details on tool isolation.

Any HTTP or stdio server implementing the MCP protocol can be connected. A minimal Python example:

from mcp.server import Server
from mcp.types import Tool, TextContent
app = Server("my-tools")
@app.list_tools()
async def list_tools():
return [Tool(name="greet", description="Greet someone", inputSchema={
"type": "object",
"properties": {"name": {"type": "string"}},
"required": ["name"]
})]
@app.call_tool()
async def call_tool(name, arguments):
if name == "greet":
return [TextContent(type="text", text=f"Hello, {arguments['name']}!")]

Run it: python server.py and connect with transport: stdio, command: python, args: [server.py].