Skip to content

Commit 8b936a5

Browse files
authored
docs: Document radon-mcp (#1906)
This PR documents `radon-mcp` which allows our users to connect their agents to our Radon IDE tooling. It's a proxy for all the MCP tools we already expose (8 of them at the time of writing this including the to-be-released ones). **NOTE:** The seemingly unrelated changed are due to `.mdx` documents being automatically formatted differently than `.md` files. **NOTE:** I wanted to use `<details>` for the collapsible sections, but these tags turned out severely offputting, and due to lack of a better alternative i added a new component. Here are the versions i tested all the configs on: | CLI | Version | |---|---| | Claude Code | 2.1.50 | | Codex | 0.104.0 | | OpenCode | 1.2.0 | | Gemini CLI | 0.29.5 | | Goose | 1.25.0 | | Amp | 0.0.1771838262 | | Kiro CLI | 1.26.2 | --- All commands i used for testing: <details> <summary>Claude Code</summary> ```sh $ claude mcp list Checking MCP server health... radon: npx -y radon-mcp@latest /Users/ignacylatka/dev/radon-ide - ✓ Connected ``` </details> <details> <summary>Gemini CLI</summary> ```sh $ gemini mcp list Configured MCP servers: ✓ radon: npx -y radon-mcp@latest /Users/ignacylatka/dev/radon-ide (stdio) - Connected ``` </details> <details> <summary>Codex</summary> ```sh $ codex mcp list Name Command Args Env Cwd Status Auth radon npx -y radon-mcp@latest /Users/ignacylatka/dev/radon-ide - - enabled Unsupported ``` </details> <details> <summary>OpenCode</summary> ```sh $ opencode mcp list ┌ MCP Servers │ ● ✓ radon connected │ npx -y radon-mcp@latest /Users/ignacylatka/dev/expo-storybook │ ● ✓ linear connected (OAuth) │ https://mcp.linear.app/mcp │ └ 2 server(s) ``` </details> <details> <summary>Goose</summary> Can't see a built in "list loaded MCPs" command other than: `goose configure > settings > configure tools`, which lists all loaded tools. ```sh $ goose configure This will update your existing config files if you prefer, you can edit them directly at /Users/ignacylatka/.config/goose ┌ goose-configure │ ◇ What would you like to configure? │ goose settings │ ◇ What setting would you like to configure? │ Tool Permission │ ◇ Choose an extension to configure tools │ Radon │ ``` </details> <details> <summary>Amp</summary> ```sh $ amp mcp list Global ~/.config/amp/settings.json radon command npx -y radon-mcp@latest /Users/ignacylatka/dev/radon-ide ``` </details> <details> <summary>Kiro CLI</summary> ```sh $ kiro-cli mcp list 🤖 default: kiro_default • radon npx $ kiro-cli mcp status --name radon Scope : 🤖 default Agent : kiro_default Command : npx Timeout : 120000 ms Disabled: false Env Vars: (none) ``` </details>
1 parent f72f0d6 commit 8b936a5

File tree

6 files changed

+206
-10
lines changed

6 files changed

+206
-10
lines changed
Lines changed: 130 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ title: Radon AI
44
sidebar_position: 11
55
---
66

7+
import CollapsibleItem from "@site/src/components/CollapsibleItem";
8+
79
Radon AI is a MCP server that provides a set of tools that enhances your editor’s Agent.
810
It provides up-to-date knowledge of the React Native ecosystem, access to a comprehensive set of debugging data that is otherwise unavailable, and the ability to interact directly with your app.
911

@@ -12,7 +14,7 @@ We index most React Native libraries along with their relevant documentation, ve
1214
Our knowledge database is updated daily to provide the most up-to-date information.
1315

1416
<video autoPlay loop width="700" controls className="shadow-image">
15-
<source src="/video/radon_ai_query_database.mp4" type="video/mp4"/>
17+
<source src="/video/radon_ai_query_database.mp4" type="video/mp4" />
1618
</video>
1719

1820
## Pre-requisites
@@ -29,21 +31,21 @@ To access `agent mode` in Visual Studio Code use `Ctrl + Shift + I` or `Cmd + Sh
2931

3032
Alternatively, open VSCode Command Palette (`Ctrl + Shift + P` or `Cmd + Shift + P`) and type `Chat: Open Chat`, then select `agent mode`.
3133

32-
<img width="550" src="/img/docs/ai_vscode_agent_mode.png" className="shadow-image"/>
34+
<img width="550" src="/img/docs/ai_vscode_agent_mode.png" className="shadow-image" />
3335

3436
To adjust the configuration of the MCP tools exposed by Radon - choose `Configure Tools...` menu.
3537

36-
<img width="550" src="/img/docs/ai_vscode_choose_tools.png" className="shadow-image"/>
38+
<img width="550" src="/img/docs/ai_vscode_choose_tools.png" className="shadow-image" />
3739

3840
There you can adjust which tools are enabled or disable the Radon AI MCP toolset completely.
3941

40-
<img width="600" src="/img/docs/ai_vscode_mcp_tools.png" className="shadow-image"/>
42+
<img width="600" src="/img/docs/ai_vscode_mcp_tools.png" className="shadow-image" />
4143

4244
## Usage in Cursor
4345

4446
Radon AI assistant integrates with Cursor's `agent mode`.
4547

46-
<img width="550" src="/img/docs/ai_cursor_chat_response.png" className="shadow-image"/>
48+
<img width="550" src="/img/docs/ai_cursor_chat_response.png" className="shadow-image" />
4749

4850
The Radon IDE automatically registers Radon AI tools in Cursor.
4951
You configure the Radon AI MCP tools from Cursor Settings. There, you can choose which tools are enabled or disable the MCP Radon toolset completely.
@@ -53,10 +55,131 @@ You configure the Radon AI MCP tools from Cursor Settings. There, you can choose
5355
3. Find the `MCP Tools` section.
5456
4. Select `Radon AI` from the list of available toolsets.
5557

56-
<img width="550" src="/img/docs/ai_cursor_mcp_settings.png" className="shadow-image"/>
58+
<img width="550" src="/img/docs/ai_cursor_mcp_settings.png" className="shadow-image" />
5759

5860
Alternatively, you can type and run `View: Open MCP Settings` from the Command Palette (`Ctrl + Shift + P` or `Cmd + Shift + P`).
5961

62+
## Usage in external Agent CLIs
63+
64+
For tools that don't read VS Code or Cursor MCP configurations, you can manually connect to Radon IDE's MCP server using the [`radon-mcp`](https://www.npmjs.com/package/radon-mcp) proxy package. The proxy locates the correct MCP server instance running in Radon IDE for a given workspace.
65+
66+
The workspace path argument is optional. If omitted, the proxy uses the current working directory. If you run the agent from your project folder, you don't need to supply it.
67+
68+
#### Installation instructions:
69+
70+
<CollapsibleItem title="Claude Code">
71+
72+
Run `claude mcp add --transport stdio radon -- npx -y radon-mcp@latest /path/to/your/react-native/project`, or add the following to your `.mcp.json` or `~/.claude.json`:
73+
74+
```json
75+
{
76+
"mcpServers": {
77+
"radon": {
78+
"command": "npx",
79+
"args": ["-y", "radon-mcp@latest", "/path/to/your/react-native/project"]
80+
}
81+
}
82+
}
83+
```
84+
85+
</CollapsibleItem>
86+
87+
<CollapsibleItem title="Codex">
88+
89+
Run `codex mcp add radon -- npx -y radon-mcp@latest /path/to/your/react-native/project`, or add the following to `~/.codex/config.toml`:
90+
91+
```toml
92+
[mcp_servers.radon]
93+
command = "npx"
94+
args = ["-y", "radon-mcp@latest", "/path/to/your/react-native/project"]
95+
```
96+
97+
</CollapsibleItem>
98+
99+
<CollapsibleItem title="OpenCode">
100+
101+
Add the following to your `opencode.json` or `opencode.jsonc`:
102+
103+
```json
104+
{
105+
"mcp": {
106+
"radon": {
107+
"type": "local",
108+
"command": ["npx", "-y", "radon-mcp@latest", "/path/to/your/react-native/project"]
109+
}
110+
}
111+
}
112+
```
113+
114+
</CollapsibleItem>
115+
116+
<CollapsibleItem title="Gemini CLI">
117+
118+
Run `gemini mcp add radon npx -y radon-mcp@latest /path/to/your/react-native/project`, or add the following to `.gemini/settings.json` (project scope) or `~/.gemini/settings.json` (user scope):
119+
120+
```json
121+
{
122+
"mcpServers": {
123+
"radon": {
124+
"command": "npx",
125+
"args": ["-y", "radon-mcp@latest", "/path/to/your/react-native/project"]
126+
}
127+
}
128+
}
129+
```
130+
131+
</CollapsibleItem>
132+
133+
<CollapsibleItem title="Goose">
134+
135+
Add the following to `~/.config/goose/config.yaml`:
136+
137+
```yaml
138+
extensions:
139+
radon:
140+
name: Radon
141+
cmd: npx
142+
args: [-y, radon-mcp@latest, /path/to/your/react-native/project]
143+
enabled: true
144+
type: stdio
145+
```
146+
147+
</CollapsibleItem>
148+
149+
<CollapsibleItem title="Amp">
150+
151+
Run `amp mcp add radon -- npx -y radon-mcp@latest /path/to/your/react-native/project`, or add the following to `~/.config/amp/settings.json`:
152+
153+
```json
154+
{
155+
"amp.mcpServers": {
156+
"radon": {
157+
"command": "npx",
158+
"args": ["-y", "radon-mcp@latest", "/path/to/your/react-native/project"]
159+
}
160+
}
161+
}
162+
```
163+
164+
</CollapsibleItem>
165+
166+
<CollapsibleItem title="Kiro CLI">
167+
168+
Run `kiro-cli mcp add --name radon --command npx --args "-y radon-mcp@latest /path/to/your/react-native/project"`, or add the following to `~/.kiro/settings/mcp.json` (global) or `<project-root>/.kiro/settings/mcp.json` (workspace):
169+
170+
```json
171+
{
172+
"mcpServers": {
173+
"radon": {
174+
"command": "npx",
175+
"args": ["-y", "radon-mcp@latest", "/path/to/your/react-native/project"]
176+
}
177+
}
178+
}
179+
```
180+
181+
</CollapsibleItem>
182+
60183
## Available tools
61184

62185
The AI models automatically discover and invoke tools when they decide it will be useful. You can query the agent to use the tool by mentioning it's name in the prompt. These are currently available tools in Radon AI:
@@ -69,7 +192,7 @@ The AI models automatically discover and invoke tools when they decide it will b
69192
- `view_component_tree` Displays the component tree of the running app. This tool allows the agent to gain a broad understanding of the project's structure.
70193

71194
<video autoPlay loop width="700" controls className="shadow-image">
72-
<source src="/video/radon_ai_preview.mp4" type="video/mp4"/>
195+
<source src="/video/radon_ai_preview.mp4" type="video/mp4" />
73196
</video>
74197

75198
## Limitations
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import React from "react";
2+
import { useCollapsible, Collapsible } from "@docusaurus/theme-common";
3+
import styles from "./styles.module.css";
4+
import PlusIcon from "../PlusIcon";
5+
import MinusIcon from "../MinusIcon";
6+
7+
interface CollapsibleItemProps {
8+
title: string;
9+
children: React.ReactNode;
10+
defaultOpen?: boolean;
11+
}
12+
13+
export default function CollapsibleItem({
14+
title,
15+
children,
16+
defaultOpen = false,
17+
}: CollapsibleItemProps) {
18+
const { collapsed, setCollapsed } = useCollapsible({
19+
initialState: !defaultOpen,
20+
});
21+
22+
return (
23+
<div className={styles.collapsible}>
24+
<button
25+
className={styles.header}
26+
onClick={() => {
27+
setCollapsed(!collapsed);
28+
}}
29+
type="button">
30+
{title}
31+
{collapsed ? <PlusIcon /> : <MinusIcon />}
32+
</button>
33+
<Collapsible
34+
lazy={false}
35+
collapsed={collapsed}
36+
disableSSRStyle
37+
onCollapseTransitionEnd={setCollapsed}>
38+
<div className={styles.content}>{children}</div>
39+
</Collapsible>
40+
</div>
41+
);
42+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
.collapsible {
2+
border-bottom: 1px solid var(--radon-border-grid-subtle);
3+
margin-bottom: 0.5rem;
4+
}
5+
6+
.collapsible button {
7+
display: flex;
8+
flex-direction: row;
9+
justify-content: space-between;
10+
align-items: center;
11+
gap: 1.5rem;
12+
width: 100%;
13+
}
14+
15+
.header {
16+
display: flex;
17+
align-items: center;
18+
cursor: pointer;
19+
padding: 12px 16px;
20+
background: transparent;
21+
border: none;
22+
width: 100%;
23+
font-size: 0.95rem;
24+
font-weight: 600;
25+
color: var(--ifm-font-color-base);
26+
user-select: none;
27+
gap: 10px;
28+
}
29+
30+
.content {
31+
padding: 8px 16px;
32+
}

packages/docs/src/components/FaqList/FaqItem/index.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import React from "react";
21
import clsx from "clsx";
32
import styles from "./styles.module.css";
43
import { useRef } from "react";
5-
import PlusIcon from "../PlusIcon";
6-
import MinusIcon from "../MinusIcon";
4+
import PlusIcon from "../../PlusIcon";
5+
import MinusIcon from "../../MinusIcon";
76

87
export interface ActiveItem {
98
index: number;
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)