5 MCP servers for Claude Code — SEO page auditor, SERP intelligence, Common Crawl backlinks, advanced GSC, WordPress management. By TheGEOLab.net
Claude Code MCP Servers Collection
Built by Artur Ferreira @ The GEO Lab 𝕏 @TheGEO_Lab · LinkedIn
Production-tested Model Context Protocol (MCP) servers for Claude Code CLI and Claude projects. These servers enable Claude to interact with your tools, APIs, and data sources seamlessly.
What are MCP Servers?
MCP servers extend Claude's capabilities by providing access to:
- External APIs (GitHub, WordPress, Google Search Console, GA4, LinkedIn, Gumroad)
- Databases (PostgreSQL, Redis, Notion)
- Web tools (Firecrawl web scraping, Puppeteer browser automation)
- Communication (Telegram messaging)
- File systems (local filesystem access)
Each server is configured in ~/.mcp.json and auto-loads when Claude Code starts.
Quick Install
1. Clone this repository
git clone https://github.com/arturseo-geo/claude-code-mcps.git
cd claude-code-mcps
2. Copy MCP configuration
cp mcp.json.template ~/.mcp.json
3. Configure authentication
Edit ~/.mcp.json and add API keys/credentials for the servers you want to use (see Configuration below).
4. Test connection
claude code --version
Claude will load your MCP servers on startup.
Servers
| Server | Purpose | Auth | Status | |--------|---------|------|--------| | GitHub | Repos, PRs, issues, code search, actions | PAT | ✅ Prod | | WordPress | Posts, pages, media, SEO, caching | App password | ✅ Prod | | Google Search Console | Search analytics, sitemaps, URL inspection | Service account | ✅ Prod | | Google Analytics 4 | Traffic, engagement, events, conversions | Service account | ✅ Prod | | LinkedIn | People, companies, jobs, posts | Browser session | ✅ Prod | | PostgreSQL | Custom databases, queries, data operations | Connection string | ✅ Prod | | Redis | Cache, queues, sorted sets, operations | Host/port | ✅ Prod | | Notion | Pages, databases, blocks, comments | API token | ✅ Prod | | Gumroad | Products, sales, offers, email | API token | ✅ Prod | | Firecrawl | Web scraping, crawling, search, extraction | API key | ✅ Prod | | Puppeteer | Browser automation, screenshots, interaction | Local headless | ✅ Prod | | Telegram | Messages, dialogs, channels | Session token | ✅ Prod | | Filesystem | Local file read/write, directory operations | Allowed paths | ✅ Prod |
Configuration
GitHub MCP
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}
Get a PAT:
- Go to https://github.com/settings/tokens
- Click "Generate new token (classic)"
- Scope:
repo,read:user,user:email,read:org - Copy and paste into
.mcp.json
WordPress MCP
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-wordpress"],
"env": {
"WORDPRESS_SITES": "[{\"url\":\"https://example.com\",\"username\":\"user\",\"password\":\"pass\"}]",
"WORDPRESS_AUTH_METHOD": "app_password"
}
}
}
}
Get an app password:
- Log in to WordPress admin
- Go to Users → Your Profile → Application Passwords
- Create new app password, copy username + password
Google Search Console MCP
{
"mcpServers": {
"gsc": {
"command": "npx",
"args": ["@modelcontextprotocol/server-gsc"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account-key.json"
}
}
}
}
Get service account credentials:
- Go to Google Cloud Console
- Create a new service account
- Grant it "Search Console Editor" role
- Create JSON key and save to
~/.gcp/gsc-sa.json - Set
GOOGLE_APPLICATION_CREDENTIALSpath in.mcp.json
Google Analytics 4 MCP
{
"mcpServers": {
"ga4": {
"command": "npx",
"args": ["@modelcontextprotocol/server-ga4"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account-key.json",
"GA4_PROPERTY_ID": "528383456"
}
}
}
}
LinkedIn MCP
{
"mcpServers": {
"linkedin": {
"command": "npx",
"args": ["@modelcontextprotocol/server-linkedin"],
"env": {
"LINKEDIN_PROFILE": "your-profile-name"
}
}
}
}
Setup:
- Install:
npm install -g @modelcontextprotocol/server-linkedin - Run setup:
linkedin-mcp-setup(uses patchright Chromium) - Profile stored at
~/.linkedin-mcp/profile/
PostgreSQL MCP
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:password@host:5432/dbname"
}
}
}
}
Redis MCP
{
"mcpServers": {
"redis": {
"command": "npx",
"args": ["@modelcontextprotocol/server-redis"],
"env": {
"REDIS_URL": "redis://host:6379"
}
}
}
}
Firecrawl MCP
{
"mcpServers": {
"firecrawl": {
"command": "npx",
"args": ["@modelcontextprotocol/server-firecrawl"],
"env": {
"FIRECRAWL_API_KEY": "fc-xxxxxxxxxxxx"
}
}
}
}
Get API key: https://app.firecrawl.dev/api-keys
Use Cases
Content Operations
- Blog Publishing: WordPress + GitHub (version control) + Firecrawl (research) + GA4 (analytics)
- Content Pipeline: GitHub (code) + PostgreSQL (job tracking) + Redis (queue) + Telegram (notifications)
SEO & Analytics
- Search Intelligence: GSC (rankings) + GA4 (traffic) + PostgreSQL (keyword DB) + Firecrawl (competitor analysis)
- Traffic Investigations: GSC + GA4 + WordPress (content) + Notion (reporting)
Link Building & Research
- Backlink Intelligence: PostgreSQL (link data) + Firecrawl (new prospects) + LinkedIn (outreach)
- Competitor Analysis: Firecrawl (site structure) + PostgreSQL (internal DB) + Puppeteer (JS-heavy sites)
Email & Sales
- Campaign Management: Gumroad (products/sales) + Telegram (notifications) + PostgreSQL (audience)
- Lead Tracking: Notion (CRM) + GitHub (pipeline code) + Firecrawl (enrichment)
Troubleshooting
Server won't connect
- Check
~/.mcp.jsonsyntax:cat ~/.mcp.json | jq - Verify credentials are correct
- Test individual server:
npx @modelcontextprotocol/server-github --version - Check Claude Code logs:
~/.claude/logs/
Permission denied errors
- GitHub: Verify PAT has required scopes (see Configuration above)
- GCP: Check service account has project Editor role
- WordPress: Verify app password is correct
- PostgreSQL: Check connection string and user permissions
Slow connections
- Firecrawl: Set
proxy: "enhanced"for better reliability - PostgreSQL: Check network latency to DB server
- LinkedIn: Browser session may be stale — re-run setup
Security Best Practices
- Never commit
.mcp.jsonwith real credentials — add to.gitignore - Use environment variables:
export GITHUB_PERSONAL_ACCESS_TOKEN=xxxx - Service accounts: Use minimal roles (GSC: Search Console Editor only)
- API keys: Rotate regularly, use different keys per environment
- Database credentials: Use IAM/managed auth where possible
- Terraform/IaC: Manage sensitive values via
.tfvarsfiles
Contributing
PRs welcome! To add a new server:
- Add server entry to table (above)
- Document configuration section
- Include use case example
- Update CONTRIBUTING.md
- Test and document any quirks
See CONTRIBUTING.md for full guidelines.
License
MIT — see LICENSE
Built and maintained by Artur Ferreira @ The GEO Lab