@@ -6,53 +6,69 @@ description: "Learn how to get started with Arcade's Hosted Tools"
66import { Steps , Tabs , Callout } from " nextra/components" ;
77import { SignupLink } from " @/app/_components/analytics" ;
88
9- # Arcade Quickstart
9+ # Arcade's Hosted Tools Quickstart
1010
11- <div className = " grid grid-cols-1 md:grid-cols-[4fr_3fr] gap-8" >
12- <div >
13- <strong >Build AI agents that actually take action.</strong >
11+ Arcade gives your AI agents the power to act. With Arcade's Hosted Tools, your AI can send Gmail, update Notion, message in Slack, and more.
1412
15- Most AI apps are stuck in read-only mode. Arcade gives your AI the power to act — send Gmail, update Notion, message in Slack, and more.
13+ <GuideOverview >
14+ <GuideOverview.Outcomes >
1615
17- In this quickstart, you'll:
16+ Build and run an MCP Server with tools that you define.
17+
18+ </GuideOverview.Outcomes >
19+
20+ <GuideOverview.Prerequisites >
21+
22+ - An <SignupLink linkLocation = " docs:call-tools-directly" >Arcade account</SignupLink >
23+ - An [ Arcade API key] ( /home/api-keys )
24+ - The [ ` uv ` package manager] ( https://docs.astral.sh/uv/getting-started/installation/ )
25+
26+ </GuideOverview.Prerequisites >
27+
28+ <GuideOverview.YouWillLearn >
1829
1930- Install the Arcade client
2031- Authenticate your first real-world tool
2132- Run your first tool call using the arcade client
2233
23- This it's the foundation to build full agents. Real tools. Real actions. Real fast.
24- Ready to start? Follow the Quickstart below.
25-
26- </div >
27- <iframe
28- className = " aspect-video w-full max-w-[900px] rounded-xl shadow-2xl"
29- src = " https://www.youtube.com/embed/USoqJOOUP6c?si=ontrjjatjmqMfTHN"
30- title = " Arcade Quickstart"
31- allow = " fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
32- referrerPolicy = " strict-origin-when-cross-origin"
33- ></iframe >
34- </div >
34+ </GuideOverview.YouWillLearn >
35+ </GuideOverview >
3536
3637<Steps >
3738
38- ### Prerequisites
39-
40- 1 . Create an <SignupLink linkLocation = " docs:call-tools-directly" >Arcade account</SignupLink >
41- 1 . Get an [ Arcade API key] ( /home/api-keys ) and take note, you'll need it in the next steps.
42-
4339### Install the Arcade client
4440
41+ In your terminal, run the following command to install the ` arcade-mcp ` package:
42+
4543<Tabs items = { [" Python" , " JavaScript" ]} storageKey = " preferredLanguage" >
46- <Tabs.Tab >``` python pip install arcadepy ``` </Tabs.Tab >
47- <Tabs.Tab >``` javascript npm install @arcadeai/arcadejs ``` </Tabs.Tab >
44+
45+ <Tabs.Tab >
46+
47+ ``` bash
48+ uv pip install arcadepy
49+ ```
50+
51+ </Tabs.Tab >
52+
53+ <Tabs.Tab >
54+
55+ ``` bash
56+ npm install @arcadeai/arcadejs
57+ ```
58+
59+ </Tabs.Tab >
60+
4861</Tabs >
4962
5063### Instantiate and use the client
5164
5265<Tabs items = { [" Python" , " JavaScript" ]} storageKey = " preferredLanguage" >
66+
5367<Tabs.Tab >
68+
5469Create a new script called ` example.py ` :
55- ``` python
70+
71+ ``` python filename="example.py"
5672from arcadepy import Arcade
5773
5874# You can also set the `ARCADE_API_KEY` environment variable instead of passing it as a parameter.
@@ -98,11 +114,15 @@ user_id=user_id,
98114
99115print (response.output.value)
100116
101- ````
117+ ```
118+
102119</Tabs.Tab >
120+
103121<Tabs.Tab >
122+
104123Create a new script called ` example.mjs ` :
105- ```javascript
124+
125+ ``` javascript filename="example.mjs"
106126import Arcade from " @arcadeai/arcadejs" ;
107127
108128// You can also set the `ARCADE_API_KEY` environment variable instead of passing it as a parameter.
@@ -132,7 +152,7 @@ const authResponse = await client.tools.authorize({
132152
133153if (authResponse .status !== " completed" ) {
134154 console .log (
135- `Click this link to authorize: \`${authResponse.url}\`. The process will continue once you have authorized the app.`,
155+ ` Click this link to authorize: \` ${ authResponse .url } \` . The process will continue once you have authorized the app.`
136156 );
137157 // Wait for the user to authorize the app
138158 await client .auth .waitForCompletion (authResponse .id );
@@ -149,21 +169,31 @@ const response_github = await client.tools.execute({
149169});
150170
151171console .log (response_github .output .value );
152- ````
172+ ```
153173
154174</Tabs.Tab >
175+
155176</Tabs >
156177
157178### Run the code
158179
159180<Tabs items = { [" Python" , " JavaScript" ]} storageKey = " preferredLanguage" >
181+
160182 <Tabs.Tab >
161- ```bash python3 example.py > The square root of 625 is 25 > Successfully
162- starred the repository ArcadeAI/ arcade- ai ```
183+
184+ ``` bash
185+ python3 example.py > The square root of 625 is 25 > Successfully
186+ starred the repository ArcadeAI/arcade-ai
187+ ```
188+
163189 </Tabs.Tab >
164190 <Tabs.Tab >
165- ```bash node example.mjs > The square root of 625 is 25 > Successfully
166- starred the repository ArcadeAI/ arcade- ai ```
191+
192+ ``` bash
193+ node example.mjs > The square root of 625 is 25 > Successfully
194+ starred the repository ArcadeAI/arcade-ai
195+ ```
196+
167197 </Tabs.Tab >
168198</Tabs >
169199
0 commit comments