Idynic MCP Server

The Model Context Protocol is an open standard for connecting AI clients to tools and data. The Idynic MCP server exposes your career portrait over it, so Claude, Cursor, or anything else that speaks MCP can read the evidence you have reviewed and work a role end to end without you pasting a resume into the conversation.

There are two ways to connect, and they reach the same account through the same API. Use the hosted endpoint unless you have a reason to run a process locally.

Remote over Streamable HTTP. No install. Point the client at one URL with your API key in the header.

Local over stdio. The client spawns @atriumn/idynic-mcp and talks to it on stdin and stdout.

Hosted endpoint
https://idynic.com/api/mcp
npm package
@atriumn/idynic-mcp
Requirements (local only)
Node.js >= 18
IDYNIC_API_KEY

Remote (HTTP)

Point any client that supports the Streamable HTTP transport at https://idynic.com/api/mcp with your API key in the Authorization header.

It is one hosted server scoped per request: there is no session on the server side, and the key you send on each request decides whose account the tools operate on. A missing or unrecognised key gets a 401.

Get a key from Settings, API Keys. Copy it when it is created; it is not shown again.

Claude Code

One command, no file to edit. See the rail.

Cursor and other clients

Add a remote MCP server with the URL and header shown in the config block. Clients differ on where that file lives, but the object itself is the same everywhere.

Endpoint
https://idynic.com/api/mcp
Required header
Authorization: Bearer idn_your_key
Remote client config
{
  "mcpServers": {
    "idynic": {
      "url": "https://idynic.com/api/mcp",
      "headers": {
        "Authorization": "Bearer idn_your_key"
      }
    }
  }
}
Claude Code
claude mcp add --transport http idynic \
  https://idynic.com/api/mcp \
  --header "Authorization: Bearer idn_your_key"

Local (stdio)

The same server, published to npm and spawned by your client. Run it with npx for no install, or install it globally if you would rather pin a version.

Claude Desktop

Edit the config file for your platform, then restart the app:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Environment variables

IDYNIC_API_KEYRequired. The server exits at startup without it.
IDYNIC_API_URLOptional. Defaults to https://idynic.com/api/v1.
Run with npx
npx -y @atriumn/idynic-mcp
Global install
npm install -g @atriumn/idynic-mcp
Claude Desktop config
{
  "mcpServers": {
    "idynic": {
      "command": "npx",
      "args": ["-y", "@atriumn/idynic-mcp"],
      "env": {
        "IDYNIC_API_KEY": "idn_your_key"
      }
    }
  }
}

Keys and scopes

The tools run against the same REST API you would call yourself, with the same key and the same scope checks. That is the useful part: the key you paste into a client config is exactly the boundary on what that client can do.

A key holding only read:profile and read:claims lets an assistant describe your portrait and nothing else. Ask it to update your profile and the call comes back 403 insufficient_scope, which the assistant will report rather than silently failing.

Give each client its own key so you can revoke one without disturbing the others, and start narrow: you can widen a key by creating a new one at any point, including from inside the assistant with create_api_key.

The full scope vocabulary is in the API reference.

A read-only assistant
[
  "read:profile",
  "read:claims",
  "read:opportunities"
]
A key that can work a job search
[
  "read:profile",
  "read:claims",
  "read:opportunities",
  "write:opportunities",
  "read:preferences"
]
Revoking
Revoking a key takes effect on the next call. Nothing else about the account changes, and other keys keep working.

Tools

More than seventy tools, grouped below by what they touch. Two of them (explore_opportunities and explore_claims) render an interactive view in clients that support MCP UI apps, and fall back to text elsewhere.

Each tool declares its own arguments, which your client reads from the server at connect time. Calling help returns the current inventory from the running server, which is the authoritative answer if this page and the server ever disagree.

Profile and record

Read the assembled career record and edit any section of it. Every write is scoped to write:profile.

  • get_profile
  • update_profile
  • get_base_resume
  • regenerate_base_resume
  • edit_resume_bullets
  • add_work_history
  • update_work_history
  • delete_work_history
  • add_education
  • update_education
  • delete_education
  • add_certification
  • update_certification
  • delete_certification
  • add_project
  • update_project
  • delete_project
  • get_projects
  • add_venture
  • update_venture
  • delete_venture
  • get_ventures
  • add_skill
  • delete_skill

Evidence

The individual claims the portrait is built from, each with the sources behind it and a confidence score.

  • get_claims
  • get_claims_summary
  • get_claim_detail
  • dismiss_claim
  • get_identity_evolution
  • add_story
  • recompute_confidence
  • explore_claims

Opportunities

Save a posting from a URL or pasted text, score it against your portrait, and keep the pipeline current.

  • add_opportunity
  • add_and_match
  • add_and_tailor
  • add_tailor_share
  • list_opportunities
  • get_opportunity
  • search_opportunities
  • update_opportunity_status
  • star_opportunity
  • delete_opportunity
  • analyze_match
  • portfolio_gaps
  • get_opportunity_notes
  • update_opportunity_notes
  • backfill_merge_opportunities
  • explore_opportunities

Intake queue and discovery

The review queue that forwarded job alerts and saved searches land in, plus the feedback that tunes what reaches it.

  • add_pending_opportunity
  • list_pending_opportunities
  • bulk_review_pending
  • dismiss_pending_opportunity
  • rescue_pending_opportunity
  • restore_pending_opportunity
  • promote_next_tranche
  • get_discovery_query_health
  • list_discovery_feedback
  • record_discovery_feedback

Tailoring and the application kit

Reframe the portrait for one role, draft the letter, grade the result, and hand over a link.

  • get_tailored_profile
  • update_tailored_profile
  • retailor_opportunity
  • generate_cover_letter
  • judge_application
  • create_share_link

Preferences and contacts

What you are looking for, and who you know where.

  • get_search_preferences
  • update_search_preferences
  • list_contacts
  • add_contact
  • update_contact
  • delete_contact

Keys and account

Mint a narrower key for another client without leaving the assistant. Ask help for the current inventory at runtime.

  • help
  • create_api_key
  • list_api_keys
  • revoke_api_key
Save a role and score it
"Save this posting and tell me
 how I stack up: <url>"

-> add_and_match
<- scores, strengths, gaps
Find the recurring gap
"What keeps coming up across
 everything I'm tracking?"

-> portfolio_gaps
<- gaps by type, score spread
Hand over a link
"Give me the link to send them."

-> create_share_link
<- Share link created: https://...
   Expires: ...
Note
add_and_tailor and add_tailor_share queue background work rather than returning a finished kit. Poll the opportunity, or ask again in a minute.

Resources

Resources are read-only documents addressed by URI. A client can attach one to a conversation directly, without a tool call. Templates take an opportunity id where {id} appears.

idynic://profileContact info and the assembled record
idynic://claimsClaims with confidence scores
idynic://work-historyWork history entries
idynic://venturesVentures you have founded or run
idynic://projectsProjects synthesised from your evidence
idynic://opportunitiesTracked roles
idynic://opportunities/{id}One tracked role
idynic://opportunities/{id}/matchMatch analysis for one role
idynic://opportunities/{id}/tailoredThe tailored profile for one role
ui://opportunity-explorerInteractive card grid, rendered by explore_opportunities
ui://identity-claim-explorerInteractive claim browser, rendered by explore_claims
Resource URIs
idynic://profile
idynic://claims
idynic://work-history
idynic://ventures
idynic://projects
idynic://opportunities
idynic://opportunities/{id}
idynic://opportunities/{id}/match
idynic://opportunities/{id}/tailored
ui://opportunity-explorer
ui://identity-claim-explorer

Troubleshooting

The client connects but lists no tools

For the local server, that usually means IDYNIC_API_KEY is not reaching the process. Client configs do not inherit your shell environment, so the key has to be in the env block of the config itself.

Every call comes back 401

The key was revoked, or the header is missing the Bearer prefix. Check it with GET /api/v1/auth/verify, which succeeds on any valid key regardless of its scopes.

One tool fails with 403 while the rest work

That is a scope, not an outage. The error names the scope it wanted. Create a key that holds it and swap it into the config.

Requests start failing with 429

The account rate limit is shared across your browser tabs, the extension, and every MCP session at once. Back off on the Retry-After header. See rate limits.

Check a key
curl https://idynic.com/api/v1/auth/verify \
  -H "Authorization: Bearer idn_your_key"
Still stuck?