Jake Shore f3c4cd817b Add all MCP servers + factory infra to MCPEngine — 2026-02-06
=== NEW SERVERS ADDED (7) ===
- servers/closebot — 119 tools, 14 modules, 4,656 lines TS (Stage 7)
- servers/google-console — Google Search Console MCP (Stage 7)
- servers/meta-ads — Meta/Facebook Ads MCP (Stage 8)
- servers/twilio — Twilio communications MCP (Stage 8)
- servers/competitor-research — Competitive intel MCP (Stage 6)
- servers/n8n-apps — n8n workflow MCP apps (Stage 6)
- servers/reonomy — Commercial real estate MCP (Stage 1)

=== FACTORY INFRASTRUCTURE ADDED ===
- infra/factory-tools — mcp-jest, mcp-validator, mcp-add, MCP Inspector
  - 60 test configs, 702 auto-generated test cases
  - All 30 servers score 100/100 protocol compliance
- infra/command-center — Pipeline state, operator playbook, dashboard config
- infra/factory-reviews — Automated eval reports

=== DOCS ADDED ===
- docs/MCP-FACTORY.md — Factory overview
- docs/reports/ — 5 pipeline evaluation reports
- docs/research/ — Browser MCP research

=== RULES ESTABLISHED ===
- CONTRIBUTING.md — All MCP work MUST go in this repo
- README.md — Full inventory of 37 servers + infra docs
- .gitignore — Updated for Python venvs

TOTAL: 37 MCP servers + full factory pipeline in one repo.
This is now the single source of truth for all MCP work.
2026-02-06 06:32:29 -05:00

70 lines
1.6 KiB
JavaScript

#!/usr/bin/env node
/**
* Google Search Console MCP Server
* Entry point - initializes auth, client, and server
*/
import { getAuthClient } from './auth/index.js';
import { GSCClient } from './lib/gsc-client.js';
import { Cache } from './lib/cache.js';
import { RateLimiter } from './lib/rate-limit.js';
import { GSCServer } from './server.js';
async function main() {
try {
console.error('Starting Google Search Console MCP server...');
// Initialize authentication
console.error('Authenticating...');
const authClient = await getAuthClient();
// Initialize GSC client
const gscClient = new GSCClient(authClient as any);
// Initialize cache
const cacheTTL = process.env.GSC_CACHE_TTL
? parseInt(process.env.GSC_CACHE_TTL) * 1000
: undefined;
const cache = new Cache({
analyticsTTL: cacheTTL
});
// Initialize rate limiter
const rateLimiter = new RateLimiter();
// Start periodic cache pruning
setInterval(() => {
cache.prune();
}, 5 * 60 * 1000); // Every 5 minutes
// Create and connect server
const server = new GSCServer({
gscClient,
cache,
rateLimiter
});
await server.connect();
// Handle graceful shutdown
process.on('SIGINT', () => {
console.error('Shutting down gracefully...');
process.exit(0);
});
process.on('SIGTERM', () => {
console.error('Shutting down gracefully...');
process.exit(0);
});
} catch (error: any) {
console.error('Fatal error:', error.message);
console.error(error.stack);
process.exit(1);
}
}
main();