[Connect your agent]
Your agent, reading your feed.The MCP server
Connect any MCP client to logs.so and ask questions like:
[Authentication]
logs.so supports two secure auth models for MCP: OAuth and dedicated MCP key headers. Both are read-only and workspace-scoped.
Use OAuth When
- ·Use OAuth for hosted connectors that ask for MCP URL + OAuth client credentials.
- ·Preferred for Claude Connector-style integrations and managed connector UIs.
- ·Use when your connector supports OAuth discovery endpoints.
Use Streamable HTTP Key When
- ·Use direct Streamable HTTP when your client can send custom headers.
- ·Best for local tools, self-managed clients, and direct remote MCP configs.
- ·Use dedicated MCP keys in Authorization, x-api-key, or x-mcp-key headers.
[oauth]
OAuth Connector Flow
For hosted connectors, set MCP URL to https://api.logs.so/v1/mcp and provide OAuth client credentials from Workspace Settings. Connector platforms such as Claude connectors should use this mode.
GET /v1/mcp/.well-known/oauth-authorization-server GET /v1/mcp/.well-known/oauth-protected-resource
POST /v1/mcp/oauth/token Authorization: Basic <base64(client_id:client_secret)> Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&scope=read
[streamable http]
Streamable HTTP
For direct MCP clients, authenticate with a dedicated MCP key in request headers to the same MCP URL.
{
"mcpServers": {
"logs-so": {
"url": "https://api.logs.so/v1/mcp",
"headers": {
"Authorization": "Bearer lsmcp_live_your_key_id_your_secret"
}
}
}
}[claude code]
Claude Code
Create an MCP key in Workspace Settings, then run this once. Pass the key as a header; adding the URL alone makes Claude Code attempt OAuth registration instead.
claude mcp add --transport http logs-so https://api.logs.so/v1/mcp \ --header "Authorization: Bearer lsmcp_live_your_key_id_your_secret"
[Available tools]
query_logsSearch the feed. Filter by channel, user, time range, free text, or failures only.
list_channelsList the channels in your feed (revenue, signups, failures, …).
get_user_timelineEverything one user did, newest first, with an activity summary.
get_logOne event by id with full metadata.
get_usageEvents used this month vs your plan limit.