Skip to content

Cursor

Cursor is a code editor built around AI workflows. Its MCP support lets you call Picora directly from chat / agent mode.

Why Picora + Cursor?

Common usages:

  • “Upload assets/screenshot-2026-04.png to Picora and replace its reference in README.md with a public URL.”
  • “Find all Markdown files in docs/ that reference local images, batch-upload those images to Picora, and rewrite the URLs.”
  • “Show me my Picora image storage usage trend.” (then visualize in chat)
  • “Publish this README as a Picora Markdown document so I can share it externally.”

Setup

Cursor supports both stdio and HTTP OAuth MCP modes. The procedure mirrors Claude Desktop — only the config file location and JSON key differ.

1. Open Cursor settings

Cmd , (Mac) / Ctrl , (Windows) → search for MCPEdit MCP config.

This opens ~/.cursor/mcp.json (or similar; Cursor displays the actual path).

2. Add Picora server

HTTP OAuth (recommended):

{
"mcpServers": {
"picora": {
"url": "https://mcp.picora.me",
"transport": "http"
}
}
}

stdio (npm):

Terminal window
npm install -g @picora/mcp

Then in mcp.json:

{
"mcpServers": {
"picora": {
"command": "npx",
"args": ["-y", "@picora/mcp"],
"env": {
"PICORA_API_KEY": "sk_live_YOUR_KEY",
"PICORA_API_URL": "https://api.picora.me"
}
}
}
}

For mainland users replace .me with .cn everywhere.

3. Reload Cursor

Cmd+Shift+P → Developer: Reload Window (or fully restart).

4. Authorize / test

In agent mode, type:

“List my recent Picora images”

Cursor shows the tool call inline; click Allow the first time. You’ll be redirected to the OAuth consent page (HTTP mode) or it’ll work directly (stdio mode).

Cursor-specific tips

Agent vs chat mode

  • Chat mode: Cursor asks before each tool call. Good for discovery.
  • Agent mode: Cursor calls tools autonomously based on your goal. Good for batch operations like “upload all images in this folder”.

For destructive operations (delete), always use chat mode — agent mode + dry-run safety still combine well, but a confirmation prompt is reassuring.

Inline file → Picora workflow

Cursor’s strength is editing local files. Picora MCP complements this:

Workflow: replace local image with Picora URL
─────────────────────────────────────────────
Prompt: "Upload assets/cover.png to Picora,
then update README.md to use the
Picora URL instead of the local path."
Cursor:
1. Reads assets/cover.png from disk
2. Calls upload_image with the file content
3. Receives public URL
4. Edits README.md to replace the local reference
5. Shows the diff for your approval

This works because Cursor has both file tools (local) and MCP tools (Picora) in the same context.

Project-scoped vs global config

Cursor supports .cursor/mcp.json per-project (committed to git is fine only if using HTTP OAuth — never commit API Keys).

For consistent personal use, keep config in ~/.cursor/mcp.json. For team projects sharing Picora resources, consider per-project HTTP OAuth config.

Workflow templates

Save common multi-step tasks as Cursor .md snippets in .cursor/rules/ to reuse across projects:

.cursor/rules/picora-publish.md
When the user asks to "publish this README", do:
1. Read the current README.md
2. Use upload_doc to upload to Picora
3. Set isPublic: true
4. Return the public URL

Troubleshooting

”Picora tools missing from menu”

  • Verify mcp.json syntax with jsonlint
  • Reload Cursor window
  • Check that the OAuth grant covers the scopes you need (re-authorize if missing)

“Tool call hangs”

  • Check Cursor’s MCP log: View → Output → MCP
  • Look for network errors connecting to mcp.picora.me
  • For stdio mode: verify the npm package is installed (npm list -g @picora/mcp)

“Cursor calls Picora but says ‘no tools found’”

  • The Cursor agent may have stale tool schema. Reload window.
  • Check that you’re on Cursor 0.40+ (older versions have MCP bugs)