Complete, production-ready examples demonstrating all authentication patterns for building MCP (Model Context Protocol) integrations for Poke.
# Clone this repository
git clone https://github.com/InteractionCo/poke-mcp-examples.git
cd poke-mcp-examples
# Pick an example and follow its README
cd iss-tracker # or weather-api, whoop-integration, bookmark-managerEach example is self-contained with its own dependencies and documentation.
| Example | Authentication | Setup Time | What You'll Build |
|---|---|---|---|
| ISS Tracker | None | 5 min | Real-time ISS location - perfect first integration |
| Weather API | API Key | 10 min | Weather data with bearer token auth |
| WHOOP Integration | OAuth Proxy | 20 min | Health data from existing OAuth API |
| Bookmark Manager | Remote OAuth + DCR | 15 min | Full multi-user service with WorkOS |
| Template | - | 5 min | Basic server structure and patterns |
New to MCP? Start with ISS Tracker - no authentication needed, 5 minutes to deploy.
Learning the basics? Check the Template for basic server patterns and structure.
Building for production? Jump to Bookmark Manager for full OAuth + Dynamic Client Registration.
poke-mcp-examples/
├── iss-tracker/ # No auth example
├── weather-api/ # API key auth example
├── whoop-integration/ # OAuth proxy example
├── bookmark-manager/ # Full OAuth + DCR example
└── mcp-server-template/ # Reference implementation
Each directory contains:
src/server.py- Server implementationrequirements.txt- Python dependencies.env.example- Environment variables (if needed)README.md- Detailed documentation
- Building tools for public APIs
- Deploying to Render with HTTPS
- Connecting to Poke without auth
- Rate limiting for public endpoints
- Validating bearer tokens on every request
- Returning proper 401 errors
- Per-API-key rate limiting
- Secure credential handling
- Wrapping existing OAuth providers
- Token forwarding to upstream APIs
- Handling refresh tokens
- Per-user data access
- Building new services from scratch
- Full MCP spec compliance
- JWT validation with JWKS
- Per-user data isolation
All examples can be deployed to Render:
- Fork this repository on GitHub
- Create a new Web Service on Render
- Connect your forked repository
- Set the Working Directory to the specific example (e.g.,
iss-tracker) - Configure build and start commands (see each example's README)
- Deploy
Poke requires HTTPS. Render provides this automatically.
| Your Scenario | Use This Pattern | Example |
|---|---|---|
| Public data, no user context | No auth | ISS Tracker |
| Simple API with keys | API Key | Weather API |
| Wrapping existing OAuth service | OAuth Proxy | WHOOP |
| Building new user service | Remote OAuth + DCR | Bookmarks |
All examples use:
- Python 3.12+
- Conda for environment management
- FastMCP framework
- Manual Render deployment (no render.yaml)
These examples are educational resources. Contributions welcome:
- Bug fixes
- Documentation improvements
- New authentication patterns
- Better practices
MIT - Use these examples as starting points for your own integrations.
Built with ❤️ by the Interaction team to help you create amazing MCP integrations.