SEODesk MCP Server
Provides a tool to retrieve Google PageSpeed Insights data for both mobile and desktop, enabling performance analysis of web pages.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SEODesk MCP ServerAnalyze the SEO of example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SEODesk MCP Server
A Remote MCP (Model Context Protocol) server that exposes the SEODesk SEO toolset to ChatGPT Apps and any other MCP-compatible client (Claude, Cursor, Codex, etc.).
Transport: Streamable HTTP (spec 2025-06-18) at
POST /mcpAuth: OAuth 2.1 with PKCE + Dynamic Client Registration (RFC 7591)
SDK:
@modelcontextprotocol/sdkRuntime: Node.js 20+
The Lovable frontend is untouched. ChatGPT talks to this MCP server; the frontend keeps talking to the existing Supabase Edge Functions. This server calls the same Edge Functions internally to fulfil tool calls.
Tools exposed
Tool | Purpose |
| Full on-page SEO analysis for a URL |
| Technical site audit (findings by category) |
| Google PageSpeed Insights (mobile + desktop) |
| Keywords, questions, clusters from a seed |
| AI-generated SEO |
| AI-generated meta descriptions |
| JSON-LD schema (Article, Product, FAQPage, …) |
| Backlink profile summary (requires provider key) |
| Content brief vs. a target keyword |
Related MCP server: GPT MCP Service
Endpoints
Path | Description |
| MCP Streamable HTTP endpoint (requires |
| Liveness probe |
| Readiness probe |
| OAuth 2.0 AS metadata (RFC 8414) |
| MCP resource metadata (RFC 9728) |
| Dynamic Client Registration (RFC 7591) |
| Authorization endpoint (PKCE S256 required) |
| Token endpoint (auth code + refresh) |
Local development
cd mcp-server
cp .env.example .env # fill in values
npm install
npm run devSanity check:
curl http://localhost:3333/health
curl http://localhost:3333/.well-known/oauth-authorization-serverEnvironment variables
See .env.example. Required at minimum:
PUBLIC_BASE_URL— public HTTPS URL of this server (used as OAuth issuer).JWT_SECRET— long random string, signs access tokens.SUPABASE_URL,SUPABASE_ANON_KEY,SUPABASE_SERVICE_ROLE_KEY— to call SEODesk backend Edge Functions.LOVABLE_API_KEY— for AI-powered tools (meta/schema/optimizer).GOOGLE_PAGESPEED_API_KEY— optional (Edge Function can supply its own).
Deploy to Railway
Push this folder to a Git repo.
In Railway → New Project → Deploy from GitHub, pick the repo and set the root directory to
mcp-server.Add the env vars from
.env.exampleunder Variables.Railway auto-detects Node;
railway.tomlsets the healthcheck to/health.After deploy, set
PUBLIC_BASE_URLandOAUTH_ISSUERto the generated HTTPS domain (e.g.https://seodesk-mcp.up.railway.app) and redeploy.
Deploy to Cloudflare Workers
The MCP SDK targets Node's http module, so the simplest CF path is to deploy
this Node app to Cloudflare Containers (or Fly.io / Render) rather than a
plain Worker. If you want a pure Workers deployment, port the two files
src/index.js and src/oauth.js onto itty-router + @modelcontextprotocol/sdk's
Web-Standard transport — the tool definitions in src/tools.js transfer
unchanged.
Minimal Docker deploy (works on Fly.io, Render, CF Containers):
docker build -t seodesk-mcp .
docker run -p 3333:3333 --env-file .env seodesk-mcpConnect from ChatGPT
ChatGPT → Settings → Apps → Create App (or Connectors).
Server URL:
https://<your-domain>/mcpChatGPT auto-discovers
/.well-known/oauth-protected-resource, registers a client via/oauth/register, and walks the user through OAuth.Once approved, all nine tools appear in ChatGPT and can be invoked in chat.
Connect from Claude / Cursor / Codex
Any MCP client that supports Streamable HTTP + OAuth 2.1 works. Point it at
https://<your-domain>/mcp and it will complete DCR + PKCE the same way.
Production hardening checklist
Replace in-memory
clients/authCodes/refreshTokensstores insrc/oauth.jswith Redis or Postgres.Replace the auto-approve
/oauth/authorizehandler with a real consent page that authenticates the end user against SEODesk (Supabase Auth).Rotate
JWT_SECRETand pinALLOWED_REDIRECT_HOSTS.Put the server behind HTTPS (Railway / Fly / CF terminate TLS for you).
Add rate limiting (e.g.
express-rate-limit) on/mcpand/oauth/*.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/apurv00001/seodesk-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server