Connect an agent
Every client below connects to the same endpoint with the same key. Replace lynq_sk_… with a key that has the read scope, made under Settings → API keys. Keep it in the client’s secret store or an environment variable, never in a file you commit.
Claude Code
claude mcp add --transport http lynq https://lynq.byharsh.com/api/mcp \
--header "Authorization: Bearer lynq_sk_…"Then, in a session, ask: how is the site doing this week? Claude Code calls the site tool once to learn the goals and the names, then the tool the question needs.
Cursor
Add to .cursor/mcp.json in the project, or to the global one under Cursor Settings → MCP:
{
"mcpServers": {
"lynq": {
"url": "https://lynq.byharsh.com/api/mcp",
"headers": { "Authorization": "Bearer lynq_sk_…" }
}
}
}Codex
In ~/.codex/config.toml:
[mcp_servers.lynq]
url = "https://lynq.byharsh.com/api/mcp"
http_headers = { "Authorization" = "Bearer lynq_sk_…" }A client that only speaks stdio
Some clients can only start a local process. mcp-remote bridges a local stdio server to a remote HTTP one:
{
"mcpServers": {
"lynq": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://lynq.byharsh.com/api/mcp",
"--header", "Authorization: Bearer ${LYNQ_API_KEY}"
],
"env": { "LYNQ_API_KEY": "lynq_sk_…" }
}
}
}Check it works
Any MCP client lists the server’s tools on connect; you should see thirteen, starting with site. From a shell, the same handshake is one request:
curl -sS https://lynq.byharsh.com/api/mcp \
-H "Authorization: Bearer lynq_sk_…" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"summary","arguments":{"range":"last_7d"}}}'A wrong key gets 401; a key without the read scope 403; a request from a browser page 403. The answer to a tool call is JSON with a summary sentence and a data object.