# Microsoft SharePoint AI Agent Connect

> Microsoft SharePoint MCP connects your AI client to your SharePoint environment through the Microsoft Graph API. Instead of manually clicking through sites to find rows or update statuses, you can simply ask your agent to find specific records, pull data from lists, or add new entries. It turns your structured site data into actionable context for any agent you use.

## Overview
- **Category:** productivity
- **Price:** Free
- **Endpoint:** https://edge.vinkius.com/vk_preview_hyjyQgdN2FnwmgX3Ydx6zaDRCga9cUDBFLvSmJaf/ai-agent-connect
- **Tags:** sharepoint, microsoft-365, lists, site-content, structured-data

## Description

You spend too much time navigating SharePoint portals just to find a single row in a list or update a task status. This MCP changes that by giving your AI client a direct line to your SharePoint sites. It uses the Microsoft Graph API to treat your lists, projects, and inventories as structured data that an agent can actually understand and manipulate. 

You can use it to discover sites across your tenant, explore the specific lists within those sites, and search through both lists and documents with a single query. When you need to make changes, the MCP handles the heavy lifting of updating fields or creating new rows using your existing column names. Because it uses paging, your agent won't get overwhelmed by massive lists, keeping your context window clean and focused. It effectively turns your SharePoint environment into a live database that your agent can query and maintain on your behalf.

## Tools

### create_list_item
Adds a new row to a specific SharePoint list. You provide a JSON object mapping your column names to the new values.

### list_sites
Finds the SharePoint sites your user has permission to access. This is the first step for discovering where your data lives.

### get_site
Retrieves specific details for a single SharePoint site using its hostname, subsite path, or GUID.

### list_lists
Shows all the lists contained within a specific SharePoint site so you can see what data is available.

### update_list_item
Modifies existing rows in a SharePoint list. Use the item ID from a previous search to change specific field values.

### get_list_item
Reads every field for a single, specific row in a SharePoint list.

### list_list_items
Fetches rows from a known SharePoint list. You can use filters to narrow down the results.

### search_site_items
Performs a site-wide search across all lists and documents to find specific information.

## Prompt Examples

**Prompt:** 
```
List the lists on the company site and show the 5 most recent items in the Tasks list.
```

**Response:** 
```
The site has 12 lists: Tasks, Projects, Requests, Documents, Assets. In Tasks, the 5 most recently modified items are: #48 'Migrate invoice import to v2' (modified 2h ago, Status: Open), #45 'Update vendor contract' (1d ago, Done), #44 'Security questionnaire' (2d ago, In progress), #42 'Quarterly review deck' (4d ago, Open), #41 'Clean up stale access' (4d ago, Open).
```

**Prompt:** 
```
Find everything mentioning 'Q3 budget' on the finance site.
```

**Response:** 
```
I searched the finance site across all lists and documents. I found 3 rows in the Budgets list: #12 'Q3 budget plan v4' (updated 5 days ago, Owner: Dana), #9 'Q3 budget approvals' (updated 12 days ago, Status: In review), and a document 'Q3-budget-assumptions.xlsx' in the Shared Documents library.
```

**Prompt:** 
```
Mark item #44 in the Tasks list as Done and set the Status and CompletedBy fields.
```

**Response:** 
```
I read item #44 to match the field requirements, then updated it: Status='Done', CompletedBy='Dana R.'. The row now shows Status Done and was modified just now.
```

## Capabilities

### Site Discovery
The agent identifies available sites via hostname or GUID.

### Data Retrieval
Your agent reads specific rows or entire lists from SharePoint.

### Site-wide Search
The agent searches across all lists and documents in a site simultaneously.

### Record Management
Your agent creates new rows or updates existing ones using column names.

### Context Management
The MCP uses paging to prevent large lists from flooding your agent's context.

## Use Cases

### Automated Task Tracking
An agent updates the status of project tasks in a SharePoint list based on your conversation.

### Inventory Management
You ask your agent to check current stock levels stored in a SharePoint list.

### Rapid Data Retrieval
An agent finds a specific contract or budget file by searching across an entire site.

### Data Entry Automation
Your agent adds new request entries to a SharePoint list from your instructions.

## Benefits

- Eliminates the need to manually browse the SharePoint web interface.
- Uses Microsoft Graph API for direct, programmatic data access.
- Maintains data integrity by using exact column names for updates.
- Prevents context overflow through automatic data paging.

## How It Works

Setting up the connection is a straightforward process through Vinkius.

1. Register an Entra application with the necessary Microsoft Graph permissions.
2. Subscribe to the MCP on Vinkius.
3. Connect your preferred AI client using OAuth 2.0.
4. Direct your agent to a SharePoint site address to start querying data.

## Frequently Asked Questions

**How do I connect my AI client to SharePoint?**
You subscribe to the MCP on Vinkius and connect via OAuth 2.0. This handles the authentication through your Microsoft account.

**What permissions are required?**
You need to register an Entra application with Microsoft Graph delegated permissions such as Sites.Read, Sites.ReadWrite, or Sites.Manage.

**Can the agent search for files, not just list rows?**
Yes, the search_site_items tool allows the agent to search across both lists and documents within a site.

**Will large lists crash my AI agent?**
No, the MCP uses paging for all list operations to ensure your agent only receives manageable amounts of data.

**How does the agent know which columns to update?**
The agent uses the exact internal column names. You can have the agent read an existing item first to learn the correct field shapes.

**Which Microsoft Graph permissions does the app need?**
Delegated permissions: Sites.Read, Sites.ReadWrite and Sites.Manage, plus openid/profile/offline_access. You consent once at the OAuth step; the agent then works only inside the sites your account can access.

**What address format does the site parameter accept?**
Three forms: the site hostname (contoso.sharepoint.com), a subsite path (contoso.sharepoint.com/sites/finance), or the site GUID returned by list_sites. Protocol and trailing slashes are stripped automatically.

**Can the agent create and update rows?**
Yes — create_list_item adds a row and update_list_item changes fields on one row. Both take a JSON object keyed by the column's internal name; the agent should read a sample row first (get_list_item) to learn the exact shapes of lookup and person columns. Lookups use {Value}, persons {Value}/{DisplayName}, so mirroring an existing row's shape avoids errors.
