Commit Graph

14 Commits

Author SHA1 Message Date
Lee Hanken
020d324edb Add readOnlyHint and openWorldHint annotations to all MCP tools
This fixes ChatGPT's "MCP write action is temporarily disabled" error by explicitly marking all tools as read-only operations. ChatGPT's Developer Mode was misinterpreting the tools as write actions without these annotations.

Changes:
- Added annotations to all 5 tools in both index.js and server-http.js
- All tools now have: annotations: { readOnlyHint: true, openWorldHint: true }
- Added test-annotations.js to verify annotations are correctly returned

Tools updated:
- search_episodes
- get_episode
- search_transcripts
- get_host_info
- get_series_info

🤖 Generated with Claude Code
2025-10-27 14:45:11 +00:00
Lee Hanken
98177f3fd5 Enhance transcript search tooling with flexible matching 2025-10-26 14:46:24 +00:00
Lee Hanken
36aa12acb5 Allow SSE POST routing via query session ids 2025-10-26 14:24:12 +00:00
Lee Hanken
931ef0335f Fix SSE transport setup and trust proxy configuration 2025-10-26 14:09:01 +00:00
Lee Hanken
43590c1778 remove custom post handler 2025-10-26 13:11:41 +00:00
Lee Hanken
eef88341f7 include better error handling for the /sse route 2025-10-26 13:06:03 +00:00
Lee Hanken
41464a1244 manually send the initial SSE headers before the main server connection starts and add a background process to send keep-alive pings 2025-10-26 12:50:18 +00:00
Lee Hanken
c52aefc785 Update CONFIGURATION.md with October 2025 MCP adoption status
MAJOR UPDATE: MCP has gone mainstream in 2025!

What Changed Since January 2025:
================================

Claude Desktop (June 2025):
-  Added remote MCP server support (HTTP/SSE + Streamable HTTP)
-  Available for Pro, Team, and Enterprise plans (beta)
-  Supports both authless and OAuth remote servers
-  Most comprehensive MCP implementation

ChatGPT (March-October 2025):
-  OpenAI officially adopted MCP in March 2025
-  Full MCP support rolled out to all paid plans in October
-  Developer mode (Sept 2025) enables read/write operations
-  Remote servers only (no stdio support)
- ⚠️ Basic implementation compared to Claude Desktop

GitHub Copilot (June-October 2025):
-  Remote GitHub MCP Server in public preview (June)
-  Agent Mode with MCP support rolled out to all VS Code users (Oct)
-  Copilot Extensions deprecated in favor of MCP (Sept)
-  Enhanced MCP support in CLI (Oct 17)
- ⚠️ MCP Tools supported, Resources not yet implemented

Google Gemini (April 2025):
-  Official MCP compatibility announced (April)
-  Integration via Gemini SDK and FastMCP
- ⚠️ SDK-level integration only (no direct UI like Claude/ChatGPT)
-  Can be used with MCP-compatible IDEs

Key Improvements:
- Remote HTTP/SSE servers now widely supported
- Streamable HTTP protocol introduced (superior to SSE)
- Over 1,000 MCP servers created by community (Feb 2025)
- MCP becoming "HTTP for AI" - industry standard

Updated Documentation:
- Connection methods: HTTP/SSE now widely supported (not future-ready, but current!)
- Configuration examples for each tool (remote + local)
- Updated summary table with current support status
- Timeline of MCP adoption throughout 2025
- Links to official documentation

This means YOUR deployed server at hpr-knowledge-base.onrender.com
can NOW be used by:
- Claude Desktop (Pro/Team/Enterprise users)
- ChatGPT (all paid plan users)
- GitHub Copilot (VS Code/Visual Studio users)
- Google Gemini (via SDK integration)
- Custom MCP clients

🎉 The future we built is NOW!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 11:52:45 +00:00
Lee Hanken
ed06ba954b Add HTTP/SSE test scripts demonstrating remote server usage
New Scripts:
- demo-http-api.js: Simple demo showing HTTP server is accessible TODAY
- test-http-mcp.js: Full MCP protocol test over HTTP/SSE
- npm run test:http: Run HTTP/SSE MCP protocol tests

Purpose:
Demonstrates that while major AI tools don't support HTTP/SSE MCP yet,
the deployed server IS accessible and usable right now for:
- Custom integrations (web apps, bots, extensions)
- Testing the MCP protocol over HTTP
- Future-proofing for when tools add support

Usage:
  node demo-http-api.js        # Quick demo (works now)
  npm run test:http            # Full MCP protocol test

Dev Dependencies Added:
- eventsource: For SSE client connections
- node-fetch: For HTTP requests

Shows Real Value:
- Server is deployed and working at hpr-knowledge-base.onrender.com
- Can be integrated into custom apps TODAY
- Ready for future MCP client adoption
- Not just waiting for tool support

This addresses the question: "Did I build something nothing supports?"
Answer: No! It's accessible now for custom code, and ready for the future.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 11:39:17 +00:00
Lee Hanken
d37a9aca4e Fix rate limiting behind reverse proxy (trust proxy headers)
Critical Fix:
- Added app.set('trust proxy', true) to server-http.js
- Fixes ValidationError about X-Forwarded-For headers
- Allows rate limiting to work correctly on Render/Heroku/etc

Problem:
- Without trust proxy, Express doesn't recognize real client IPs
- All users appear to have the same IP (the proxy's IP)
- Rate limiting applied to ALL users as a single entity
- One user hitting limit blocks everyone

Solution:
- Trust X-Forwarded-For headers from reverse proxies
- Each user now has their own rate limit bucket
- Rate limiting works as designed (50 req/min per IP)

Documentation:
- Added troubleshooting section in DEPLOYMENT.md
- Explains the error and impact
- Shows how to verify the fix

This is required for any deployment behind a reverse proxy
(Render, Heroku, AWS ELB, nginx, etc.)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 11:32:42 +00:00
Lee Hanken
caa022c4d8 Add comprehensive configuration guide for multiple AI tools
New Documentation:
- CONFIGURATION.md: Complete setup guide for all major AI platforms
- Covers Claude Desktop, ChatGPT, Copilot, Gemini, and custom integrations
- Both stdio (local) and HTTP/SSE (remote) configuration options
- Troubleshooting section with common issues and solutions
- MCP protocol reference for developers
- Code examples in Python and Node.js

AI Tool Support Status:
-  Claude Desktop: stdio only (fully documented)
-  ChatGPT: Not supported (workarounds provided)
-  GitHub Copilot: Not supported (alternatives included)
-  Google Gemini: Not supported (integration examples)
-  Custom MCP clients: Full support (examples provided)

Key Sections:
- Connection method comparison (stdio vs HTTP/SSE)
- Quick start commands for testing
- Platform-specific configuration paths
- JSON-RPC 2.0 protocol examples
- Future compatibility roadmap
- Summary table of AI tool support

Updated README.md:
- Links to new CONFIGURATION.md guide
- Clear support status indicators
- Note about Claude Desktop stdio-only limitation

This addresses the current limitation where Claude Desktop doesn't
support HTTP/SSE connections, while preparing documentation for
future MCP adoption by other AI platforms.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 11:30:59 +00:00
Lee Hanken
3b692a8c2f Add deployment timing expectations and troubleshooting notes
Documentation improvements:
- Added detailed timing breakdown (2-5 min first deployment)
- Explained data loading phase (30-90s for 4,511 episodes)
- Added "What to expect in logs" section
- Included free tier vs paid tier timing differences
- Added health check grace period recommendation (180s)
- New troubleshooting section for deployment delays
- Clarified when service is actually ready to use

Helps users understand:
- Why deployment takes several minutes
- What log messages indicate progress
- When to test the health endpoint
- Free tier spin-down behavior

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 11:19:54 +00:00
Lee Hanken
d68885cff8 Add HTTP/SSE transport with graceful degradation for public deployment
New Features:
- HTTP/SSE server (server-http.js) for network access
- Express-based web server with MCP SSE transport
- Rate limiting (50 req/min per IP)
- Request timeouts (30s)
- Concurrent request limiting (max 10)
- Circuit breaker pattern for failure handling
- Memory monitoring (450MB threshold)
- Gzip compression for responses
- CORS support for cross-origin requests
- Health check endpoint (/health)

Infrastructure:
- Updated package.json with new dependencies (express, cors, compression, rate-limit)
- New npm script: start:http for HTTP server
- Comprehensive deployment guide (DEPLOYMENT.md)
- Updated README with deployment instructions

Graceful Degradation:
- Automatically rejects requests when at capacity
- Circuit breaker opens after 5 failures
- Memory-aware request handling
- Per-IP rate limiting to prevent abuse

The original stdio server (index.js) remains unchanged for local use.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 10:57:39 +00:00
Lee Hanken
7c8efd2228 Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use
- Search episodes, transcripts, hosts, and series
- 4,511 episodes with metadata and transcripts
- Data loader with in-memory JSON storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 10:54:13 +00:00