Junie MCP server not working: statuses, sign-in and config fixes
By Jake Marsh, who builds Taskhold. Updated 2026-11-11. Facts about other tools checked 2026-11-11. 4 min read.
Short answer: Junie reads ~/.junie/mcp/mcp.json (every project) and .junie/mcp/mcp.json (one project). Open /mcp in the Junie CLI to see each server's status. Authorization required means choose Authorize and sign in; Failed or Inactive means fix the entry and choose Reconnect. timeout is in milliseconds, so 60 is rejected and the 60-second default applies.
You added an MCP server to Junie, JetBrains' coding agent, and it doesn't work: /mcp shows it as Failed, Inactive or Authorization required, or the tools never appear. Junie shows a status for every server and offers one fix for each, so start by reading the status.
The last section covers Taskhold's server, which feeds the live board where Junie's tasks, steps and questions show up. Setup is on the Junie page.
Find the file Junie reads
- User scope, every project: ~/.junie/mcp/mcp.json.
- Project scope: .junie/mcp/mcp.json at the project root.
- In a JetBrains IDE, Junie's MCP Settings page lists each server with its status and tools, shows whether it's stored globally or in the project, and its Add button opens mcp.json for editing.
- The CLI also takes --mcp-location <path> to search more folders, and --mcp-default-locations false to skip the two above.
{
"mcpServers": {
"my-local": {
"command": "npx",
"args": ["-y", "some-mcp-server"],
"env": { "API_KEY": "..." }
},
"my-remote": {
"url": "https://example.com/mcp",
"timeout": 120000
}
}
}Read the status in /mcp
- Starting: Junie is launching or connecting to it.
- Active: running, tools available.
- Inactive: configured and enabled, but not running. Choose Reconnect.
- Disabled: switched off. Choose Enable.
- Failed: the connection failed, the server didn't start, or it crashed. Junie's causes: an invalid entry, failed authentication, a missing dependency or a runtime crash. Fix the cause, then choose Reconnect.
- Authorization required: the remote server wants a sign-in. Choose Authorize, not Reconnect.
Reconnect is only offered for enabled servers that are Failed or Inactive. When Junie runs inside another client over ACP, /mcp is read-only: edit mcp.json directly.
Signing in to a remote server
- In /mcp, select the server showing Authorization required.
- Open its menu and choose Authorize.
- Sign in on the page that opens in your browser.
- Check the status is now Active.
Junie's docs describe this sign-in for the CLI. In the IDE plugin, use a server that takes a key in headers if the browser sign-in doesn't start.
Timeouts in milliseconds
Junie waits 60 seconds by default for each request: the startup handshake, the tool list and every tool call. timeout overrides it per server, in milliseconds, from 1000 to 3600000. A value outside that range, such as "timeout": 60 written as if it were seconds, is ignored with a warning in the log and the default applies.
Local servers that won't start
A Failed local server usually means the command isn't found or exits. Run the same command and args in a terminal: if it fails there, it fails in Junie. Give command an absolute path if the terminal finds it and Junie doesn't, and put the variables it needs in env.
Taskhold-specific checks
Taskhold is a remote server at https://taskhold.com/api/mcp. When its tools don't show up in Junie, check these in order:
- The entry in ~/.junie/mcp/mcp.json has url set to exactly https://taskhold.com/api/mcp and no headers. In the Junie CLI, /mcp then shows Authorization required: choose Authorize and sign in, with no sign-up first. The first time Junie uses Taskhold it gives you the link to start the 7-day trial.
- In the IDE plugin, add a headers line with an atd_sk_ key instead, as on the Junie page. Taskhold's 401 names the cause: missing_key, bad_header, not_a_taskhold_key or unknown_key.
- Ask Junie to call the taskhold list tool. Settings in Taskhold shows the connection once the first call arrives.
With the tools loaded and the workflow from the Junie page in your guidelines, every task Junie starts, its steps and its questions show on the live board next to your other agents. More clients: MCP server not connecting, fixes for every client.
Answer your coding agents from anywhere.
$12/month or $120/year after the trial. Card up front. Cancel before day 7 and you pay nothing. Every agent you run is included.
Or connect your agent first, no sign-up: add https://taskhold.com/api/mcp as an MCP server. The first time it uses Taskhold, it gives you the trial link.
Questions
- Where is Junie's mcp.json?
- ~/.junie/mcp/mcp.json for every project and .junie/mcp/mcp.json at a project's root for one project. In the IDE, Junie's MCP Settings page opens it from its Add button.
- What does Authorization required mean in Junie?
- The remote server wants you to sign in. In /mcp, open the server's menu, choose Authorize and finish in the browser; the status turns Active.
- Why does Junie ignore my MCP timeout?
- The value is in milliseconds and must be between 1000 and 3600000. Anything outside that, such as 60, is ignored and the 60-second default is used.
Sources
- Junie docs: CLI MCP configuration (locations, statuses, Authorize, Reconnect, timeout), checked 2026-11-11
- Junie docs: plugin MCP settings, checked 2026-11-11
Related
Updated 2026-11-11. Something wrong or out of date? Email hello@greatwork.company.