Skip to main content
The Reactive Resume MCP server lets you manage and modify your resumes and job applications through any MCP-compatible AI tool - Claude Desktop, Cursor, Codex, and more. It connects to the Reactive Resume API and exposes tools for resume editing, Application Tracker workflows, and AI-assisted job application tasks using natural language.

What is MCP?

The Model Context Protocol (MCP) is a standard that lets LLM-powered tools connect to external services. Instead of being limited to the built-in chat UI, you can use any MCP client to interact with your resumes.

Prerequisites

1

Choose your authentication method

Reactive Resume MCP supports two authentication methods:
  • OAuth2 (recommended): best user experience for clients that support MCP OAuth.
  • API key (fallback): works in all clients that can send custom headers.
Use OAuth2 whenever your MCP client supports it. Use API key only when OAuth is unavailable in that client.
2

If using API key, create one

Head over to https://rxresu.me (or your self-hosted instance), sign in, and navigate to Settings → API Keys. Click Create a new API key, give it a name, and copy the secret — it’s only shown once.For the full walkthrough, see Using the API.

Configuration

There are two transport options, and each can use either OAuth2 or API key depending on your client capabilities. If your client supports the url field (e.g. Cursor, Codex, Claude custom connectors), use this. Most OAuth-capable clients only need the MCP URL:
Then connect/sign in from the client UI (or with the client’s OAuth login command).

Option B: API key (fallback)

If OAuth is not supported in your client, send x-api-key:

Method 2: mcp-remote

If your client only supports command / args (for example, local-only Claude Desktop config), use mcp-remote as a bridge. This requires Node.js 20 or later. mcp-remote is most commonly used with API keys:
Replace your-api-key with the API key you created in the prerequisites step.

Where to put the config

Authentication Details (How Reactive Resume MCP Works)

Reactive Resume MCP accepts authentication in this order:
  1. Bearer token (OAuth2 access token) via Authorization: Bearer <token>
  2. API key fallback via x-api-key: <key>
If neither is valid, the MCP endpoint responds with 401 and advertises OAuth metadata using:
  • WWW-Authenticate: Bearer resource_metadata="<instance>/.well-known/oauth-protected-resource"
This lets OAuth-capable MCP clients discover and complete the OAuth flow automatically.

OAuth2 flow used by this server

Reactive Resume is configured as an OAuth authorization server for MCP clients:
  • The MCP endpoint is https://rxresu.me/mcp.
  • OAuth discovery metadata is exposed under /.well-known/* endpoints.
  • The login/authorization route is /auth/oauth.
  • If the user is not signed in, /auth/oauth redirects to /auth/login, then resumes OAuth.
  • If the user is signed in, /auth/oauth validates client_id and redirect_uri, issues an authorization code, and redirects back to the client.
  • PKCE parameters (code_challenge, code_challenge_method) are preserved in the authorization flow.

Cursor

OAuth2 (recommended):
API key fallback:

Codex (CLI / IDE extension)

Add server:
Then log in with OAuth:
API key fallback (config.toml):

Claude (web app custom connector)

Add https://rxresu.me/mcp as a custom remote MCP connector, then connect with OAuth in Claude’s connector UI.

Claude Desktop (local config file)

Use mcp-remote bridge with API key (example shown above in Method 2).

External References

Self-Hosting

If you’re running a self-hosted Reactive Resume instance, replace https://rxresu.me/mcp with your instance URL:

Available Tools

Tool names use canonical unprefixed snake_case names.

Breaking change (tool names)

Older clients may refer to prefixed or dot-separated names. Those names are no longer registered; update automations and saved prompts to the canonical names above.

Available Resources

Resources follow MCP conventions: static items appear in resources/list; parameterized access is declared in resources/templates/list and read via resources/read once you know the ID.

Breaking change (schema URI)

The schema resource was previously resume://schema. It is now resume://_meta/schema. Update any saved prompts, automations, or client configs that referenced the old URI.

Static server card (/.well-known/mcp/server-card.json)

GET /.well-known/mcp/server-card.json returns a JSON document (SEP-1649) with serverInfo, optional authentication metadata, and summaries of tools, resources, resource templates, and prompts. It is generated to match the live MCP server and can be used for discovery when a client cannot run a full capability scan against /mcp/.

Available Prompts

Prompts are pre-built workflows that provide the AI with structured instructions and context. Each prompt embeds the resume data and the schema resource (resume://_meta/schema) automatically.

Usage Examples

Once your MCP client is connected, you can use natural language to interact with your resumes:

Browsing

  • “List my resumes”
  • “Show me my resume named ‘Software Engineer’”
  • “What skills are listed on my resume?”
  • “Show me the stats for my resume”

Tracking Applications

  • “Create an application for Senior Frontend Engineer at Acme, stage saved, source LinkedIn.”
  • “List my archived applications tagged remote.”
  • “Move my Acme application to interview and add a note that the technical screen is next Tuesday.”
  • “Attach this resume PDF to the Acme application.”
  • “Score the resume linked to this application against the job description.”
  • “Create a tailored resume copy for this application.”
  • “Draft a follow-up message for the recruiter.”
For a complete workflow and prompt library, see Managing applications with MCP.

Creating & Managing

  • “Create a new resume called ‘Frontend Engineer 2026’”
  • “Import this exported ResumeData JSON as a new resume”
  • “What tags do I use across my resumes?”
  • “Duplicate my ‘Software Engineer’ resume for a product manager role”
  • “Make my resume public and give me the share link”
  • “Lock my finalized resume so it can’t be accidentally edited”
  • “Delete my old draft resume”

Editing

  • “Update my name to Jane Doe”
  • “Change my headline to Senior Software Engineer”
  • “Add TypeScript to my skills with an Advanced proficiency level”
  • “Add a new experience entry for my role as Staff Engineer at Acme Corp from Jan 2024 to Present”
  • “Remove the third item from my skills section”

Styling

  • “Change the template to bronzor”
  • “Set the primary color to blue”
  • “Hide the interests section”

Using Prompts

  • “Help me build my resume from scratch” (uses build_resume)
  • “Review my resume and give me a score” (uses review_resume)
  • “Improve the wording on my resume” (uses improve_resume)
The AI will use read_resume to inspect your current resume before making changes with apply_resume_patch. This ensures the correct JSON paths are used. Use update_resume for name, slug, tags, and public visibility (not for section content).

Troubleshooting