oauth1-authenticated api bridging for devhub cms operations
Implements a FastMCP server that translates natural language requests from LLM clients into authenticated OAuth1 API calls to the DevHub CMS backend, using requests-oauthlib for credential injection and structured response formatting. The server acts as a translation layer that handles authentication state management, request serialization, and response deserialization without requiring LLMs to implement native DevHub API integration.
Unique: Uses FastMCP framework to expose DevHub CMS as standardized MCP tools, eliminating need for LLMs to implement custom DevHub API clients. OAuth1 credentials are injected at server startup via environment variables, allowing multiple LLM clients (Claude Desktop, Cursor, Claude Code) to share a single authenticated session without exposing secrets to the LLM.
vs alternatives: Simpler than building native DevHub integrations into each LLM client; more secure than passing API credentials in prompts because authentication happens server-side before LLM invocation.
multi-client mcp tool exposure with fastmcp framework
Exposes DevHub CMS operations as standardized MCP tools that work across Claude Desktop, Cursor IDE, Claude Code CLI, and Smithery package manager through a single FastMCP server implementation. Tools are declaratively defined with schema validation, parameter documentation, and structured output formatting, enabling LLM clients to discover and invoke capabilities without custom integration code.
Unique: Implements a single FastMCP server that automatically works with Claude Desktop (via uvx + claude_desktop_config.json), Cursor IDE (via MCP config), Claude Code CLI (via claude mcp add), and Smithery (via npx install) without code changes. Tool schemas are declaratively defined once and reused across all client types.
vs alternatives: More maintainable than building separate integrations for each client; MCP standardization ensures consistent behavior across Claude Desktop, Cursor, and CLI tools, whereas custom integrations would require per-client testing and maintenance.
business and location hierarchical querying with geolocation support
Provides tools to query DevHub CMS business and location data with hierarchical relationships, including get_businesses (retrieve all businesses), get_locations (retrieve locations for a specific business), get_nearest_location (find closest location by coordinates), and site_from_url (resolve business from website URL). Implements geospatial distance calculation and URL-to-business reverse lookup, enabling LLMs to navigate multi-location business structures.
Unique: Combines business-location hierarchy traversal with geospatial distance calculation (get_nearest_location) and reverse URL-to-business lookup (site_from_url), enabling LLMs to resolve business context from multiple input types (IDs, coordinates, URLs) without requiring users to manually specify business/location relationships.
vs alternatives: More flexible than static business lookups because it supports geospatial queries and URL resolution; enables location-aware workflows that would require manual business ID specification in simpler systems.
hours of operation management with update persistence
Exposes get_hours_of_operation (retrieve current hours for a business/location) and update_hours (modify hours with validation and persistence to DevHub CMS). Updates are immediately persisted to the DevHub backend via authenticated API calls, enabling LLMs to manage business hours directly without manual CMS access. Supports structured hours data with day-of-week granularity.
Unique: Provides bidirectional hours management (read + write) with immediate persistence to DevHub CMS, allowing LLMs to both retrieve current hours and update them in a single workflow. Updates bypass manual CMS UI, enabling automation of hours changes for seasonal/holiday scenarios.
vs alternatives: More powerful than read-only hours queries because it enables LLM-driven automation of hours updates; more direct than requiring users to manually edit hours in the CMS UI.
blog post crud operations with content versioning
Implements get_blog_post (retrieve published blog content by slug), create_blog_post (publish new blog posts with title, body, metadata), and update_blog_post (modify existing posts) with full persistence to DevHub CMS. Each operation maps to authenticated DevHub API endpoints, enabling LLMs to manage blog content lifecycle without CMS UI access. Supports structured metadata (tags, categories, publish status).
Unique: Provides full CRUD operations for blog posts with immediate persistence to DevHub CMS, enabling LLMs to both read published content and generate/update posts in a single workflow. Integrates with LLM text generation capabilities to enable end-to-end AI-assisted blog authoring.
vs alternatives: More complete than read-only blog APIs because it enables LLM-driven content creation and updates; more direct than requiring manual CMS UI access for publishing.
image upload and media asset management
Exposes upload_image tool that accepts image files (binary or base64-encoded) and persists them to DevHub CMS media storage with metadata (alt text, title, description). Handles multipart form encoding for file transmission and returns media asset URLs/IDs for reference in blog posts and other content. Integrates with DevHub's asset management backend.
Unique: Integrates image upload directly into the MCP tool set, enabling LLM agents to upload images generated by AI tools (DALL-E, Midjourney) or provided by users without leaving the MCP context. Returns asset URLs that can be immediately referenced in blog posts or other content.
vs alternatives: More integrated than separate image hosting because images are stored in DevHub CMS alongside content; enables end-to-end workflows where LLMs generate text + images and publish both together.
installation and deployment across multiple llm client platforms
Supports four distinct installation methods (Claude Desktop via uvx, Cursor IDE via MCP config, Claude Code CLI via claude mcp add, Smithery via npx) that deploy the same FastMCP server code to different environments. Each method handles platform-specific configuration (config file paths, environment variable injection, package registry integration) while maintaining identical server behavior. Enables developers to choose deployment method based on their LLM client preference.
Unique: Single FastMCP codebase supports four distinct installation methods (Claude Desktop, Cursor, Claude Code, Smithery) without code changes, using platform-specific configuration and package managers. Developers choose installation method based on their LLM client preference, not based on different server implementations.
vs alternatives: More flexible than single-client integrations because same server works across Claude Desktop, Cursor, and CLI; more maintainable than separate implementations for each client because code is shared.
environment-based credential management with oauth1 injection
Manages DevHub CMS OAuth1 credentials (API key, API secret, base URL) through environment variables (DEVHUB_API_KEY, DEVHUB_API_SECRET, DEVHUB_BASE_URL) that are read at server startup and injected into all API requests via requests-oauthlib. Credentials are never exposed to LLM clients or stored in configuration files, enabling secure multi-client access without credential sharing. Supports both local development and containerized deployment.
Unique: Implements server-side credential injection via environment variables, ensuring OAuth1 secrets never reach LLM clients or appear in prompts. Credentials are read once at startup and cached, enabling multiple LLM clients to share a single authenticated session without exposing secrets.
vs alternatives: More secure than passing credentials in prompts because authentication happens server-side; more practical than per-client credentials because multiple clients share one authenticated session.
+2 more capabilities