OpenSEO MCP Server Tools: A Complete Guide to Authentication, Transport, and Formatting Utilities
The OpenSEO MCP server provides seven modular tools—URLs, Transport, OAuth Provider, API-Key Auth, Context, Instrumentation, and Formatters—that handle authentication, HTTP transport, request context, telemetry, and response formatting from the src/server/mcp/ directory.
OpenSEO's Managed Cloud Platform (MCP) server is built from a toolkit of lightweight, composable utilities designed to keep the server side lean and testable. Each tool lives in its own module under src/server/mcp/ and follows a service-oriented pattern: one job per module, with clean interfaces for extension. This article explores every available tool in the OpenSEO MCP server, their responsibilities, and how to use them in practice.
URL Management with the URLs Tool
The URLs tool centralizes all endpoint paths used by the MCP server, eliminating hardcoded strings and providing a single source of truth for route definitions.
Key exports from src/server/mcp/urls.ts:
MCP_API_BASE— root URL for all MCP API callsMCP_AUTH_URL— authentication endpoint pathMCP_HEALTHCHECK_URL— health monitoring endpoint
This pattern prevents drift between client and server route definitions and makes environment-specific configuration straightforward.
HTTP Transport with the Transport Tool
The Transport tool in src/server/mcp/transport.ts manages all low-level HTTP communication with the MCP backend, including request building, automatic retry logic, and response parsing.
Key exports:
createTransport— factory function to initialize a transport instancetransportRequest— core request execution methodTransportError— custom error class for transport failures
import { createTransport } from '@/server/mcp/transport';
import { formatSuccess } from '@/server/mcp/formatters';
import { MCP_API_BASE } from '@/server/mcp/urls';
const transport = createTransport({ baseURL: MCP_API_BASE });
export async function fetchProject(projectId: string) {
const response = await transport.get(`/projects/${projectId}`);
return formatSuccess(response.data);
}
The transport layer handles connection pooling, timeout configuration, and exponential backoff for transient failures—critical for reliable cloud platform operations.
User Authentication with the OAuth Provider Tool
The OAuth Provider tool implements the complete OAuth 2.0 flow for user-initiated authentication in src/server/mcp/oauth-provider.ts.
Key exports:
getOAuthRedirectURL— generates authorization URLs for login redirectsexchangeCodeForToken— trades authorization codes for access tokensrefreshAccessToken— obtains new tokens using refresh tokens
import { getOAuthRedirectURL } from '@/server/mcp/oauth-provider';
const loginUrl = getOAuthRedirectURL({
clientId: process.env.OAUTH_CLIENT_ID,
redirectUri: 'https://app.openseo.com/callback',
scope: 'read:projects',
});
This tool abstracts platform-specific OAuth details, allowing the MCP server to support multiple identity providers through a consistent interface.
API Key Validation with the API-Key Auth Tool
The API-Key Auth tool validates incoming API-key credentials, providing a lightweight alternative to OAuth for service-to-service authentication.
Key exports from src/server/mcp/api-key-auth.ts:
validateApiKey— validates keys and throws structured errorsApiKeyError— error class with specific codes for missing/invalid keys
import { validateApiKey } from '@/server/mcp/api-key-auth';
import { createMcpContext } from '@/server/mcp/context';
export async function handler(req, res) {
const apiKey = req.headers['x-api-key'];
await validateApiKey(apiKey); // throws if invalid
const ctx = createMcpContext(req); // attaches tracing info
// ...handle the request...
}
Request Context with the Context Tool
The Context tool creates per-request context objects that propagate tracing information, user identity, and metadata throughout the call chain.
Key exports from src/server/mcp/context.ts:
createMcpContext— factory for request-scoped context instancesMcpContext— the context type definition
This enables distributed tracing without polluting function signatures—context flows implicitly through the call stack while remaining type-safe.
Observability with the Instrumentation Tool
The Instrumentation tool emits structured telemetry for every MCP request, integrating with OpenSEO's broader telemetry pipeline.
Key exports from src/server/mcp/instrumentation.ts:
recordRequestMetrics— logs timings and outcome countersinstrumentedHandler— wrapper that auto-instruments route handlers
This tool captures latency percentiles, error rates, and throughput metrics essential for SLO monitoring and capacity planning.
Response Formatting with the Formatters Tool
The Formatters tool normalizes all response payloads to a consistent API contract, handling success wrapping, error standardization, and pagination.
Key exports from src/server/mcp/formatters.ts:
formatSuccess— wraps successful responses with metadataformatError— standardizes error payloads with codes and messagespaginateResult— shapes paginated collections with cursor/token navigation
This ensures clients receive predictable structures regardless of which internal service generated the response.
How the MCP Server Tools Work Together
The seven tools form a processing pipeline for every MCP request:
- URLs resolves the target endpoint
- Transport executes the HTTP call with retries
- OAuth Provider or API-Key Auth validates credentials
- Context attaches request-scoped metadata
- Instrumentation records performance metrics
- Formatters shapes the final response
This composable architecture allows individual tools to be mocked in tests, replaced for specific environments, or extended without cascade effects.
Summary
- OpenSEO's MCP server provides seven specialized tools in
src/server/mcp/for secure, observable API operations - URLs (
src/server/mcp/urls.ts) centralizes endpoint definitions withMCP_API_BASEand related constants - Transport (
src/server/mcp/transport.ts) handles HTTP communication viacreateTransportandTransportError - OAuth Provider (
src/server/mcp/oauth-provider.ts) manages OAuth 2.0 flows throughgetOAuthRedirectURLand token exchange functions - API-Key Auth (
src/server/mcp/api-key-auth.ts) validates service credentials withvalidateApiKeyandApiKeyError - Context (
src/server/mcp/context.ts) propagates request metadata usingcreateMcpContextand theMcpContexttype - Instrumentation (
src/server/mcp/instrumentation.ts) captures telemetry viarecordRequestMetricsandinstrumentedHandler - Formatters (
src/server/mcp/formatters.ts) standardizes outputs throughformatSuccess,formatError, andpaginateResult
Frequently Asked Questions
What does MCP stand for in OpenSEO?
MCP stands for Managed Cloud Platform. It refers to OpenSEO's server-side infrastructure for handling authentication, request routing, and API management for cloud-hosted SEO services.
How do I add custom authentication to the OpenSEO MCP server?
Extend the API-Key Auth tool (src/server/mcp/api-key-auth.ts) by implementing a custom validator that wraps or replaces validateApiKey. The modular design allows you to inject alternative credential schemes without modifying the transport or formatting layers.
Can I use the Transport tool without the other MCP server tools?
Yes. The Transport tool (src/server/mcp/transport.ts) is intentionally decoupled. You can import createTransport independently and configure it with any baseURL, making it reusable for non-MCP endpoints or external API integrations.
Where does request tracing information come from in OpenSEO MCP?
The Context tool (src/server/mcp/context.ts) generates tracing data via createMcpContext, which extracts correlation IDs from incoming request headers. This context propagates through the call chain and is consumed by the Instrumentation tool for telemetry emission.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →