Model Context Protocol
Verify photo authenticity from any AI agent
Lumethic ships a remote MCP server, so AI agents can check whether a photo is a real, unmodified camera capture — directly inside their toolchain. No SDK to install: point your client at the endpoint and call the tools.
Endpoint
Connect over Streamable HTTP
The server speaks the Model Context Protocol over a Streamable HTTP endpoint. It is stateless, so no session affinity is required.
https://api.lumethic.com/mcp
Transport: Streamable HTTP
Authentication
Sign in from your assistant, or use an API key
Most people should connect from the assistant itself: it opens a Lumethic consent screen, you confirm with a six-digit code we email you, and the assistant is connected. No account setup, no key to paste. API keys remain the right tool for servers, scripts and CI.
Sign in from your assistant
RecommendedThe assistant opens Lumethic's consent screen in your browser. Enter your email, type the code we send you, and choose what the assistant may do. New addresses get a free account on the spot; the same address then signs you in on this website too.
Claude Code
One command, no header. Claude Code opens the consent screen the first time it connects.
claude mcp add --transport http lumethic https://api.lumethic.com/mcpClaude.ai and Claude Desktop
- Open Settings, then Connectors.
- Choose Add custom connector.
- Paste https://api.lumethic.com/mcp as the URL and confirm.
- Follow the sign-in prompt: enter your email and the six-digit code from our email.
ChatGPT, Cursor and other MCP clients
Add https://api.lumethic.com/mcp as a remote MCP server with OAuth. Clients that support the MCP authorization flow discover everything they need from the endpoint.
You can see and disconnect connected assistants in your profile at any time.
Manage connected assistantsAPI key
For servers, scripts, CI and clients without an OAuth flow. Create a key once and pass it on every request.
Authorization header
Send your key as a Bearer token: Authorization: Bearer ask_… — this is what Claude's mcp_servers connector sends via its authorization_token field.
X-API-Key header
Alternatively, pass the key in an X-API-Key: ask_… header.
Keyless anonymous tier
Call the server with no credentials to evaluate it. This tier is rate-limited and meant for trying things out before you register.
Quick start
Connect with an API key
Prefer a key over the sign-in flow? Add the server to your MCP client with an API key. Replace ask_… with your own key.
Claude Code (API key)
claude mcp add --transport http lumethic \
https://api.lumethic.com/mcp \
--header "X-API-Key: ask_..."Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"lumethic": {
"command": "npx",
"args": [
"mcp-remote",
"https://api.lumethic.com/mcp",
"--header", "X-API-Key: ask_..."
]
}
}
}OpenAI Agents SDK (Python)
from agents import Agent, HostedMCPTool
agent = Agent(
name="photo-verifier",
tools=[HostedMCPTool(tool_config={
"type": "mcp",
"server_label": "lumethic",
"server_url": "https://api.lumethic.com/mcp",
"headers": {"X-API-Key": "ask_..."},
})],
)Claude Messages API
"mcp_servers": [
{
"type": "url",
"name": "lumethic",
"url": "https://api.lumethic.com/mcp",
"authorization_token": "ask_..."
}
]Python (MCP SDK)
from mcp.client.streamable_http import streamablehttp_client
async with streamablehttp_client(
"https://api.lumethic.com/mcp",
headers={"X-API-Key": "ask_..."},
) as (read, write, _):
...Toolset
What agents can call
Once connected, agents have the following tools available. Verification tools work on the anonymous tier; account and marketplace tools require an API key.
verify_photoVerify a photo by passing a RAW file and its JPEG export (inline base64 for small files).create_verification_uploadGet pre-signed S3 URLs for large RAW files, PUT the bytes directly, then pass the returned object keys to verify_photo.get_verificationFetch a verification by id; poll until status is completed to read the authenticity result.list_verificationsList the verifications on your account. Requires an API key.get_account_usageReport your plan plus used and remaining verifications. Requires an API key.share_verificationCreate a public share link for a verification.get_verification_shareRead the current public share state of a verification.unshare_verificationRevoke a verification's public share link.get_listingRead a single marketplace listing.list_my_listingsList your own marketplace listings.lumethic://pricing — describes the available plans and their limits.
Workflow
From upload to verdict
A typical authenticity check runs in four steps.
Connect
Connect from your assistant (sign in with an emailed code on the consent screen) or point your MCP client at the endpoint with an API key.
Upload
Call verify_photo with the RAW file and its JPEG export. For large RAW files, call create_verification_upload first, PUT the bytes to the pre-signed URLs, then pass the returned object keys.
Poll
Call get_verification by id until status is completed. Processing typically takes a few minutes.
Read the result
Read the assurance level and its explanation. Verified means the capture was checked against its RAW file and passed within stated thresholds; it does not say whether the scene was real. Key on the level, not on any number in the response.
Error handling
Machine-readable error codes
Tool errors come back with machine-readable codes, so an agent can react and, when needed, prompt the user to register or upgrade.
QUOTA_EXCEEDEDThe plan's verification quota is used up. Prompt the user to register or upgrade.INVALID_CREDENTIALSThe API key is missing or invalid. Check the Authorization or X-API-Key header.RATE_LIMIT_EXCEEDEDToo many requests on the keyless anonymous tier. Add an API key or slow down.Ready to connect an assistant?
Run the Claude Code command above or add the custom connector in Claude.ai, then confirm with the code we email you. Building a server or script? Create an API key instead. Prefer raw HTTP? The REST API exposes the same verification engine.