What is MCP
Model Context Protocol (MCP) is an open standard that connects AI applications to external data sources and tools. It defines how AI clients discover capabilities, authenticate with servers, and execute operations through a standardized interface. Poke acts as an MCP host - when users add an integration, Poke connects to your MCP server, discovers available tools, and makes them available to AI agents during conversations. Read the official specification for complete protocol details.How Poke Implements MCP
Poke builds on the official MCP TypeScript SDK and acts as the MCP client. Your integration runs as a remote MCP server exposed via HTTPS. Integration flow:- Users add your server URL in Settings → Integrations
- Poke connects and negotiates protocol version with your server
- If authentication is required, users provide credentials (API key) or authorize via OAuth
- Poke establishes authenticated connection
- Your server returns metadata and available tools
- Poke caches tools and makes them available to agents
- Agents can call your tools as needed during conversations
What Matters Most
Building a great integration comes down to two things:1. Server Instructions (Critical)
This is the most important part of your integration. Server instructions guide how Poke’s AI agents decide when and how to use your tools. Think of them as the “system prompt” for your integration. Poor instructions = agents won’t use your tools correctly, no matter how well-designed they are. See Server Instructions for comprehensive guidance - this is worth reading carefully.2. Tool Design (Important)
Tools should have clear names, comprehensive descriptions, and well-defined schemas. Agents use these to understand what your tools do. See Tool Design Philosophy for best practices.Everything else (protocol versions, transport layers, authentication
flows) is typically handled by frameworks like
FastMCP. If you’re building from scratch, the
sections below explain what you need to implement.
Protocol Support
Poke supports the latest MCP protocol versions and automatically negotiates the highest mutually supported version during connection. Your server should implement at least one supported protocol version. Modern frameworks like FastMCP handle protocol negotiation automatically - you don’t need to think about this.Protocol version details
Protocol version details
Poke uses MCP SDK v1.17.3, supporting protocol versions 2025-06-18 (latest) and 2024-11-05 (backward compatibility). The default negotiated version is 2025-03-26.See MCP Client Specification for specific version requirements.
Server Metadata
During initialization, your server provides metadata that helps Poke understand your integration:- name - Server identifier (shown to agents in tool calls)
- version - Version string (not displayed to users)
- title - Optional human-readable name (shown in UI)
- instructions - Critical: Guides agents on how to use your tools
instructions field is where you teach agents how to use your integration effectively. Don’t skip this - it’s more important than any individual tool description.
See Server Instructions for how to write effective instructions.
Capabilities
Poke supports these MCP protocol capabilities:| Feature | Support | Description |
|---|---|---|
| Tools | Supported | Functions for the AI model to execute |
| Prompts | Not Supported | Templated messages and workflows for users |
| Resources | Not Supported | Structured data sources that can be read and referenced |
| Roots | Not Supported | Server-initiated inquiries into URI or filesystem boundaries |
| Elicitation | Not Supported | Server-initiated requests for additional information from users |
Tools
Tools are the core of integrations - they’re functions that AI agents can call to interact with your service.Discovery and Execution
When users add your integration:- Poke calls
tools/listto discover available tools and their schemas - Tools are cached for the session duration
- During conversations, agents can call
tools/callto execute your tools - Tool results are returned to the agent for further processing
Tool Design
Each tool should:- Have a clear, descriptive name (e.g.,
search_repositories,create_task) - Include a comprehensive description explaining what it does and when to use it
- Define a complete JSON schema for input parameters
- Return structured, informative results
Authentication
Poke supports four authentication patterns based on the MCP Authorization specification. Choose based on what you’re building:No Auth
Use when: Your integration provides public data with no user identity. User experience: Works immediately after adding the URL. Zero setup required. Implementation: Your server accepts unauthenticated requests.API Key
Use when: You have simple token-based authentication - good for testing or developer tools. User experience: Users paste their API key once when adding the integration. Implementation: Poke sends the key in theAuthorization: Bearer <token> header on every request. Your server validates the token.
OAuth: Two Patterns
OAuth implementation depends on what you’re building:Remote OAuth with DCR
Use when: Building a brand new service (your own data, your own users). User experience: One-time authorization, automatic token refresh. Implementation: Use an identity provider like WorkOS AuthKit to handle OAuth server. You build your tools and validate tokens. Example: A bookmark manager where users save personal bookmarks to your database.OAuth Proxy
Use when: Connecting an existing API with OAuth (WHOOP, GitHub, Strava, etc.). User experience: One-time authorization, automatic token refresh. Implementation: Your MCP server acts as a bridge between Poke and the upstream OAuth provider using FastMCP’sOAuthProxy.
Example: WHOOP integration - users authenticate with WHOOP, you fetch their health data.
Simple rule: Building something new? Use Remote OAuth with DCR.
Connecting an existing OAuth service? Use OAuth Proxy.
- OAuth 2.1 + PKCE flow
- Authorization server discovery via
.well-knownendpoints - Token storage (encrypted at rest with AES-256-GCM)
- Automatic token refresh before expiration
Transport
Your MCP server exposes a single HTTPS endpoint (e.g.,https://example.com/mcp). This is the URL users enter when adding your integration.
Poke supports two transport protocols:
- Streamable HTTP (default) - Latest MCP spec transport, attempted first
- SSE (Server-Sent Events) - Automatic fallback for backward compatibility
Local development: Poke doesn’t support stdio transport. For local
testing, use the MCP
Inspector or Claude
Desktop, then deploy to HTTPS for Poke
integration.
Quick Reference
Here’s what you absolutely need for a working integration: Required:- HTTPS endpoint exposing your MCP server
- At least one tool with clear name and description
- Server instructions explaining when and how to use your tools
- Authentication method (can be “No Auth” for public integrations)
- Server title for better UI display
- Multiple tools for richer functionality
- Well-defined JSON schemas for tool inputs
- Detailed tool descriptions with examples
- Protocol version negotiation (frameworks handle this)
- Transport layer selection (automatic)
- Token refresh (Poke handles OAuth refresh)
Next Steps
Server Instructions
Start here. Learn to write instructions that make agents use your tools effectively.
Quick Start
Build your first integration with FastMCP in under 10 minutes.
Tool Design Philosophy
Best practices for creating tools agents understand.
Authentication
Choose and implement the right auth pattern.
Tool Lifecycle
Understand tool caching and updates.
Need technical specifications? See the MCP Client Specification for exact protocol versions, error codes, request/response formats, and implementation requirements.