{"name":"mcp-server","version":"2.0.0","protocol":"Model Context Protocol (MCP)","spec":"https://spec.modelcontextprotocol.io/","security":{"authentication":"JWT (HS256)","token_expiration":"Configurable (default: 1 hour)","rate_limiting":"IP-based","audit_logging":"All requests logged","https":"Required"},"endpoints":{"mcp":"/mcp","health":"/health","oauth_freeagent":"/oauth/freeagent","oauth_freeagent_callback":"/oauth/callback","oauth_google":"/oauth/google","oauth_google_callback":"/oauth/google/callback"},"freeagent_setup":{"step1":"Visit /oauth/freeagent to start FreeAgent authorization","step2":"Login to FreeAgent and authorize the app","step3":"Copy tokens from callback page to .dev.vars","step4":"Restart server: pm2 restart mcp-server-secure","step5":"Test FreeAgent tools via MCP"},"google_contacts_setup":{"step1":"Visit /oauth/google to start Google Contacts authorization","step2":"Login to Google and authorize the app","step3":"Copy tokens from callback page to .dev.vars","step4":"Restart server: pm2 restart mcp-server-secure","step5":"Test Google Contacts tools via MCP"},"token_generation":{"method":"CLI Script","script":"node generate-token.js","usage":"node generate-token.js --client-id <id> --client-name <name> --expires-in <seconds>"},"usage":{"endpoint":"/mcp","method":"POST","contentType":"application/json","authentication":"Bearer <JWT_TOKEN>","token_format":"JWT with HS256 signature","example":{"initialize":{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"genspark","version":"1.0.0"}}},"tools/list":{"jsonrpc":"2.0","id":2,"method":"tools/list"},"tools/call":{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_time","arguments":{}}}}}}