Get started
Connect an agent
The MCP server lives at https://sceniq.earth/api/mcp. It speaks the Streamable HTTP transport, statelessly: every message is one POST, there are no sessions and no server-initiated stream. Every operation of the API reference except the photo uploads is one tool.
When an agent connects, the server hands it short instructions: the non-negotiables (never invent facts, photos only from the creator, nothing goes live unless the creator says so) and the workflow. The full playbook is the authoring skill; install it where your agent reads skills.
Claude Code
Adds the Sceniq MCP server to Claude Code for the current project (drop --scope project for just this machine). Then install the skill so Claude follows the authoring rules.
claude mcp add --transport http sceniq https://sceniq.earth/api/mcp \
--header "Authorization: Bearer sk_sceniq_YOUR_KEY"
mkdir -p .claude/skills/sceniq-guide-authoring
curl -fsSL https://sceniq.earth/developers/skill.md -o .claude/skills/sceniq-guide-authoring/SKILL.mdClaude Desktop
Claude Desktop connectors do not pass custom headers yet, so the open-source mcp-remote bridge supplies the key. Add this to claude_desktop_config.json.
{
"mcpServers": {
"sceniq": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://sceniq.earth/api/mcp",
"--header",
"Authorization: Bearer ${SCENIQ_API_KEY}"
],
"env": {
"SCENIQ_API_KEY": "sk_sceniq_YOUR_KEY"
}
}
}
}Cursor
Add to .cursor/mcp.json in your project (or the global ~/.cursor/mcp.json).
{
"mcpServers": {
"sceniq": {
"url": "https://sceniq.earth/api/mcp",
"headers": {
"Authorization": "Bearer sk_sceniq_YOUR_KEY"
}
}
}
}Codex CLI
Add to ~/.codex/config.toml. Codex reads the key from the environment variable named in bearer_token_env_var.
[mcp_servers.sceniq]
url = "https://sceniq.earth/api/mcp"
bearer_token_env_var = "SCENIQ_API_KEY"
# then: export SCENIQ_API_KEY="sk_sceniq_YOUR_KEY"Check the connection
Ask the agent to call whoami. It answers with the creator, the key's scopes and the limits. If the agent reports invalid_api_key, the key was revoked or mistyped; make a new one in the studio.
Without an MCP client
Every tool is also a REST endpoint with the same input, and the OpenAPI document describes all of them. Any HTTP client works.
Protocol details
- Protocol versions 2025-06-18, 2025-03-26 and 2024-11-05; the server answers with the one the client asks for, or the newest.
initializereturns the instructions andcapabilities.tools.tools/listreturns every tool with its title, annotations (readOnlyHint,destructiveHint,idempotentHint) and input schema.tools/callreturns the result as text and asstructuredContent. A refused call is a tool result withisError: trueand the error code in the text, never a protocol error.- GET and DELETE answer 405. Authentication failures answer 401 with
WWW-Authenticate: Bearer realm="sceniq".