2026-05-13
Wiring up MCP for a file-sharing service
MCP is the open standard for letting AI agents call external tools. Here is what quik.space exposes, what the wire format looks like, and the config snippet you can paste into Claude Desktop today.
What MCP is, briefly
Model Context Protocol (MCP) is an open standard from Anthropic, first released in late 2024. The shape is simple: an MCP server exposes a list of tools, each tool has a name and a JSON input schema, and a client calls them over JSON-RPC 2.0. Any MCP-capable client — Claude Desktop, custom agents, IDE plugins, server-side LLM frameworks — can wire up an MCP server without bespoke integration.
The reason this matters is the same reason USB-C matters. Before MCP, every agent integration was a one-off. Every service had its own SDK, its own auth, its own retry semantics. MCP collapses that into one wire format. Plug in the server URL. Get a tool list. Call tools.
What quik.space exposes
quik.space exposes three tools at one endpoint:
POST https://quik.space/mcpThe three tools are:
upload_file— upload a file and get a share URL. Free up to 100 MB, paid above that via x402.get_file_info— look up metadata for a share URL or share ID. Always free.extend_file— bump a file's expiry by 30 days. $2 in USDC on Base via x402.
Input schemas
Each tool advertises a JSON Schema input. An agent introspects the schema, generates a tool call, and POSTs:
{
"name": "upload_file",
"input_schema": {
"type": "object",
"properties": {
"filename": { "type": "string" },
"content_base64": { "type": "string" },
"content_type": { "type": "string" },
"owner_email": { "type": "string", "format": "email" }
},
"required": ["filename", "content_base64"]
}
}The other two tools take a single argument:
{
"name": "get_file_info",
"input_schema": {
"type": "object",
"properties": {
"share_url_or_id": { "type": "string" }
},
"required": ["share_url_or_id"]
}
}
{
"name": "extend_file",
"input_schema": {
"type": "object",
"properties": {
"share_url_or_id": { "type": "string" }
},
"required": ["share_url_or_id"]
}
}Claude Desktop config
Paste this into your claude_desktop_config.json (typically at ~/Library/Application Support/Claude/ on macOS or %APPDATA%\Claude\ on Windows):
{
"mcpServers": {
"quik-space": {
"transport": {
"type": "http",
"url": "https://quik.space/mcp"
}
}
}
}Restart Claude Desktop. The three quik.space tools will appear in the tools list. Ask Claude to upload a file or look up a share URL and it will call quik.space directly.
Curl, from scratch
Free uploads need nothing beyond the JSON-RPC envelope:
curl -X POST https://quik.space/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "upload_file",
"arguments": {
"filename": "notes.md",
"content_base64": "IyBoZWxsbwo=",
"content_type": "text/markdown"
}
}
}'Info lookups are similarly trivial:
curl -X POST https://quik.space/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_file_info",
"arguments": { "share_url_or_id": "abc12345" }
}
}'The first call to extend_file without a payment proof returns HTTP 402 with the structured payment requirement. The agent signs an EIP-3009 transferWithAuthorization for 2000000 atomic units of USDC on Base, and retries with the proof in an X-Payment-Proof header:
curl -X POST https://quik.space/mcp \
-H "Content-Type: application/json" \
-H "X-Payment-Proof: <base64-signed-eip3009-authorization>" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "extend_file",
"arguments": { "share_url_or_id": "abc12345" }
}
}'For the full x402 wire details, see the x402 explainer or the protocol reference on the AI agents page.
Why three tools and not thirty
Most MCP servers err on the side of exposing every possible capability. quik.space goes the other way. Three tools cover every agent workflow we have actually seen: stash a generated file, look it up later, keep it alive if it turns out to matter. Anything more is decoration. Anything fewer would leave a real workflow stuck.
The bet is that small, sharp interfaces beat large, baroque ones — especially for clients that read JSON Schemas and reason about them. Three tools is enough to do file sharing well. It is small enough that an LLM can hold the whole API in its head.