Skip to content

Commit e95527a

Browse files
authored
Microsoft SharePoint toolkit documentation (#400)
1 parent 7592883 commit e95527a

29 files changed

+1068
-0
lines changed
Lines changed: 341 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,341 @@
1+
# Sharepoint
2+
3+
import ToolInfo from "@/components/ToolInfo";
4+
import Badges from "@/components/Badges";
5+
import TabbedCodeBlock from "@/components/TabbedCodeBlock";
6+
import TableOfContents from "@/components/TableOfContents";
7+
import ToolFooter from "@/components/ToolFooter";
8+
9+
<ToolInfo
10+
description="Enable agents to interact with Sharepoint"
11+
author="Arcade"
12+
authType="OAuth2"
13+
versions={["0.1.0"]}
14+
/>
15+
16+
<Badges repo="arcadeai/arcade_sharepoint" />
17+
18+
The SharePoint toolkit provides a comprehensive set of tools for interacting with SharePoint sites and their contents. Users can perform various actions, including:
19+
20+
- Retrieve lists, items, and pages from SharePoint sites.
21+
- Access metadata and content of specific pages.
22+
- Search for and retrieve information about SharePoint sites and drives.
23+
- Browse and download files from SharePoint drives / document libraries.
24+
25+
This toolkit simplifies the process of accessing and managing SharePoint resources efficiently for AI Agents and chat bots.
26+
27+
## Available Tools
28+
29+
<TableOfContents
30+
headers={["Tool Name", "Description"]}
31+
data={
32+
[
33+
["Sharepoint.GetListsFromSite", "Retrieve lists from a SharePoint site."],
34+
["Sharepoint.GetItemsFromList", "Retrieve items from a list in a SharePoint site."],
35+
["Sharepoint.GetPage", "Retrieve metadata and the contents of a page in a SharePoint site."],
36+
["Sharepoint.ListPages", "Retrieve pages from a SharePoint site."],
37+
["Sharepoint.GetSite", "Retrieve information about a specific SharePoint site by its ID, URL, or name."],
38+
["Sharepoint.SearchSites", "Search for SharePoint sites by name or description."],
39+
["Sharepoint.ListSites", "List all SharePoint sites accessible to the current user."],
40+
["Sharepoint.GetFollowedSites", "Retrieve a list of SharePoint sites that are followed by the current user."],
41+
["Sharepoint.GetDrivesFromSite", "Retrieve drives / document libraries from a SharePoint site."],
42+
["Sharepoint.ListRootItemsInDrive", "Retrieve items from the root of a drive in a SharePoint site."],
43+
["Sharepoint.ListItemsInFolder", "Retrieve items from a folder in a drive in a SharePoint site."],
44+
["Sharepoint.SearchDriveItems", "Search for items in one or more Sharepoint drives."],
45+
]
46+
}
47+
/>
48+
49+
<Tip>
50+
If you need to perform an action that's not listed here, you can [get in touch
51+
with us](mailto:[email protected]) to request a new tool, or [create your
52+
own tools](/home/build-tools/create-a-toolkit).
53+
</Tip>
54+
55+
## Sharepoint.GetListsFromSite
56+
57+
<br />
58+
<TabbedCodeBlock
59+
tabs={[
60+
{
61+
label: "Call the Tool Directly",
62+
content: {
63+
Python: ["/examples/integrations/toolkits/sharepoint/get_lists_from_site_example_call_tool.py"],
64+
JavaScript: ["/examples/integrations/toolkits/sharepoint/get_lists_from_site_example_call_tool.js"],
65+
},
66+
},
67+
]}
68+
/>
69+
70+
Retrieve lists from a SharePoint site.
71+
72+
**Parameters**
73+
74+
- **site** (`string`, required) Site ID, SharePoint URL, or site name to get lists from. Prefer using a site ID whenever available for optimal performance.
75+
76+
77+
## Sharepoint.GetItemsFromList
78+
79+
<br />
80+
<TabbedCodeBlock
81+
tabs={[
82+
{
83+
label: "Call the Tool Directly",
84+
content: {
85+
Python: ["/examples/integrations/toolkits/sharepoint/get_items_from_list_example_call_tool.py"],
86+
JavaScript: ["/examples/integrations/toolkits/sharepoint/get_items_from_list_example_call_tool.js"],
87+
},
88+
},
89+
]}
90+
/>
91+
92+
Retrieve items from a list in a SharePoint site.
93+
94+
**Parameters**
95+
96+
- **site** (`string`, required) Site ID, SharePoint URL, or site name to get lists from. Prefer using a site ID whenever available for optimal performance.
97+
- **list_id** (`string`, required) The ID of the list to get items from.
98+
99+
100+
## Sharepoint.GetPage
101+
102+
<br />
103+
<TabbedCodeBlock
104+
tabs={[
105+
{
106+
label: "Call the Tool Directly",
107+
content: {
108+
Python: ["/examples/integrations/toolkits/sharepoint/get_page_example_call_tool.py"],
109+
JavaScript: ["/examples/integrations/toolkits/sharepoint/get_page_example_call_tool.js"],
110+
},
111+
},
112+
]}
113+
/>
114+
115+
Retrieve metadata and the contents of a page in a SharePoint site.
116+
117+
**Parameters**
118+
119+
- **site** (`string`, required) Site ID, SharePoint URL, or site name to retrieve base pages from. Prefer using a site ID whenever available for optimal performance
120+
- **page_id** (`string`, required) The ID of the page to retrieve.
121+
- **include_page_content** (`boolean`, optional) Whether to include the page content in the response. Defaults to True. If set to False, the tool will return only the page metadata.
122+
123+
124+
## Sharepoint.ListPages
125+
126+
<br />
127+
<TabbedCodeBlock
128+
tabs={[
129+
{
130+
label: "Call the Tool Directly",
131+
content: {
132+
Python: ["/examples/integrations/toolkits/sharepoint/list_pages_example_call_tool.py"],
133+
JavaScript: ["/examples/integrations/toolkits/sharepoint/list_pages_example_call_tool.js"],
134+
},
135+
},
136+
]}
137+
/>
138+
139+
Retrieve pages from a SharePoint site.
140+
141+
**Parameters**
142+
143+
- **site** (`string`, required) Site ID, SharePoint URL, or site name to retrieve base pages from. Prefer using a site ID whenever available for optimal performance.
144+
- **limit** (`integer`, optional) The maximum number of pages to return. Defaults to 10, max is 200.
145+
146+
147+
## Sharepoint.GetSite
148+
149+
<br />
150+
<TabbedCodeBlock
151+
tabs={[
152+
{
153+
label: "Call the Tool Directly",
154+
content: {
155+
Python: ["/examples/integrations/toolkits/sharepoint/get_site_example_call_tool.py"],
156+
JavaScript: ["/examples/integrations/toolkits/sharepoint/get_site_example_call_tool.js"],
157+
},
158+
},
159+
]}
160+
/>
161+
162+
Retrieve information about a specific SharePoint site by its ID, URL, or name.
163+
164+
**Parameters**
165+
166+
- **site** (`string`, required) Site ID, SharePoint URL, or site name to search for.
167+
168+
169+
## Sharepoint.SearchSites
170+
171+
<br />
172+
<TabbedCodeBlock
173+
tabs={[
174+
{
175+
label: "Call the Tool Directly",
176+
content: {
177+
Python: ["/examples/integrations/toolkits/sharepoint/search_sites_example_call_tool.py"],
178+
JavaScript: ["/examples/integrations/toolkits/sharepoint/search_sites_example_call_tool.js"],
179+
},
180+
},
181+
]}
182+
/>
183+
184+
Search for SharePoint sites by name or description.
185+
186+
**Parameters**
187+
188+
- **keywords** (`string`, required) The search term to find sites by name or description.
189+
- **limit** (`integer`, optional) The maximum number of sites to return. Defaults to 10, max is 100.
190+
- **offset** (`integer`, optional) The offset to start from.
191+
192+
193+
## Sharepoint.ListSites
194+
195+
<br />
196+
<TabbedCodeBlock
197+
tabs={[
198+
{
199+
label: "Call the Tool Directly",
200+
content: {
201+
Python: ["/examples/integrations/toolkits/sharepoint/list_sites_example_call_tool.py"],
202+
JavaScript: ["/examples/integrations/toolkits/sharepoint/list_sites_example_call_tool.js"],
203+
},
204+
},
205+
]}
206+
/>
207+
208+
List all SharePoint sites accessible to the current user.
209+
210+
**Parameters**
211+
212+
- **limit** (`integer`, optional) The maximum number of sites to return. Defaults to 10, max is 100.
213+
- **offset** (`integer`, optional) The offset to start from.
214+
215+
216+
## Sharepoint.GetFollowedSites
217+
218+
<br />
219+
<TabbedCodeBlock
220+
tabs={[
221+
{
222+
label: "Call the Tool Directly",
223+
content: {
224+
Python: ["/examples/integrations/toolkits/sharepoint/get_followed_sites_example_call_tool.py"],
225+
JavaScript: ["/examples/integrations/toolkits/sharepoint/get_followed_sites_example_call_tool.js"],
226+
},
227+
},
228+
]}
229+
/>
230+
231+
Retrieve a list of SharePoint sites that are followed by the current user.
232+
233+
**Parameters**
234+
235+
- **limit** (`integer`, optional) The maximum number of sites to return. Defaults to 10, max is 100.
236+
237+
238+
## Sharepoint.GetDrivesFromSite
239+
240+
<br />
241+
<TabbedCodeBlock
242+
tabs={[
243+
{
244+
label: "Call the Tool Directly",
245+
content: {
246+
Python: ["/examples/integrations/toolkits/sharepoint/get_drives_from_site_example_call_tool.py"],
247+
JavaScript: ["/examples/integrations/toolkits/sharepoint/get_drives_from_site_example_call_tool.js"],
248+
},
249+
},
250+
]}
251+
/>
252+
253+
Retrieve drives / document libraries from a SharePoint site.
254+
255+
**Parameters**
256+
257+
- **site** (`string`, required) Site ID, SharePoint URL, or site name to get drives from. Prefer using a site ID whenever available for optimal performance.
258+
259+
260+
## Sharepoint.ListRootItemsInDrive
261+
262+
<br />
263+
<TabbedCodeBlock
264+
tabs={[
265+
{
266+
label: "Call the Tool Directly",
267+
content: {
268+
Python: ["/examples/integrations/toolkits/sharepoint/list_root_items_in_drive_example_call_tool.py"],
269+
JavaScript: ["/examples/integrations/toolkits/sharepoint/list_root_items_in_drive_example_call_tool.js"],
270+
},
271+
},
272+
]}
273+
/>
274+
275+
Retrieve items from the root of a drive in a SharePoint site.
276+
277+
**Parameters**
278+
279+
- **drive_id** (`string`, required) The ID of the drive to get items from.
280+
- **limit** (`integer`, optional) The number of items to get. Defaults to 100, max is 500.
281+
- **offset** (`integer`, optional) The number of items to skip.
282+
283+
284+
## Sharepoint.ListItemsInFolder
285+
286+
<br />
287+
<TabbedCodeBlock
288+
tabs={[
289+
{
290+
label: "Call the Tool Directly",
291+
content: {
292+
Python: ["/examples/integrations/toolkits/sharepoint/list_items_in_folder_example_call_tool.py"],
293+
JavaScript: ["/examples/integrations/toolkits/sharepoint/list_items_in_folder_example_call_tool.js"],
294+
},
295+
},
296+
]}
297+
/>
298+
299+
Retrieve items from a folder in a drive in a SharePoint site.
300+
301+
**Parameters**
302+
303+
- **drive_id** (`string`, required) The ID of the drive to get items from.
304+
- **folder_id** (`string`, required) The ID of the folder to get items from.
305+
- **limit** (`integer`, optional) The number of items to get. Defaults to 100, max is 500.
306+
- **offset** (`integer`, optional) The number of items to skip.
307+
308+
309+
## Sharepoint.SearchDriveItems
310+
311+
<br />
312+
<TabbedCodeBlock
313+
tabs={[
314+
{
315+
label: "Call the Tool Directly",
316+
content: {
317+
Python: ["/examples/integrations/toolkits/sharepoint/search_drive_items_example_call_tool.py"],
318+
JavaScript: ["/examples/integrations/toolkits/sharepoint/search_drive_items_example_call_tool.js"],
319+
},
320+
},
321+
]}
322+
/>
323+
324+
Search for items in one or more Sharepoint drives.
325+
326+
**Parameters**
327+
328+
- **keywords** (`string`, required) The keywords to search for files in the drive.
329+
- **drive_id** (`string`, optional) Optionally, the ID of the drive to search items in. If not provided, the search will be performed in all drives.
330+
- **folder_id** (`string`, optional) Optionally narrow the search within a specific folder by its ID. If not provided, the search will be performed in the whole drive. If a folder_id is provided, it is required to provide a drive_id as well.
331+
- **limit** (`integer`, optional) The number of files to get. Defaults to 50, max is 500.
332+
- **offset** (`integer`, optional) The number of files to skip.
333+
334+
335+
336+
337+
## Auth
338+
339+
The Arcade Sharepoint toolkit uses the [Microsoft auth provider](/home/auth-providers/microsoft) to connect to users' Sharepoint accounts. Please refer to the [Microsoft auth provider](/home/auth-providers/microsoft) documentation to learn how to configure auth.
340+
341+
<ToolFooter pipPackageName="arcade_sharepoint" />
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { Arcade } from "@arcadeai/arcadejs";
2+
3+
const client = new Arcade(); // Automatically finds the `ARCADE_API_KEY` env variable
4+
5+
const USER_ID = "{arcade_user_id}";
6+
const TOOL_NAME = "Sharepoint.DownloadFileFromDrive";
7+
8+
// Start the authorization process
9+
const authResponse = await client.tools.authorize({tool_name: TOOL_NAME});
10+
11+
if (authResponse.status !== "completed") {
12+
console.log(`Click this link to authorize: ${authResponse.url}`);
13+
}
14+
15+
// Wait for the authorization to complete
16+
await client.auth.waitForCompletion(authResponse);
17+
18+
const toolInput = {
19+
"drive_id": "12345",
20+
"file_id": "abcde",
21+
"encoding": "utf-8"
22+
};
23+
24+
const response = await client.tools.execute({
25+
tool_name: TOOL_NAME,
26+
input: toolInput,
27+
user_id: USER_ID,
28+
});
29+
30+
console.log(JSON.stringify(response.output.value, null, 2));

0 commit comments

Comments
 (0)