
List charts in a worksheet. Use listworksheets to find worksheets. Use cursor from pageinfo for the next page.
Add a chart to a worksheet from a data range. charttype e.g. 'ColumnClustered', 'Line', 'Pie'. sourcedata e.g. 'A1:C4'. seriesby: Auto, Columns, or Rows. Use listworksheets to find worksheet names/IDs. Sunburst, Treemap, Waterfall, Histogram, RegionMap and Funnel charts are rejected: GCC High does not offer them.
Get a base64-encoded PNG image of a chart. Use list_charts to find chart names/IDs. width/height of 0 use the chart's native size.
Delete a chart from a worksheet by name or ID. Use list_charts to find chart names/IDs.
List named items (named ranges and constants) defined in a workbook. Use listworkbooks to find itemid. Errors if a named item's value is a linked data type cell GCC High cannot resolve.
Get a single named item by name, including the value or formula it refers to. Use listnameditems to find valid names. Errors if the value is a linked data type (Stocks, Geography), which GCC High cannot resolve.
Get a cell range's values, text, and formulas by address (e.g. 'A1:B2'). Use listworksheets to find worksheets. Pass sessionid for consistent reads after writes. Errors if the range contains linked data type cells (Stocks, Geography), which GCC High cannot resolve.
Get the used range of a worksheet (the smallest range covering all cells with data). Set values_only=true to ignore empty formatted cells. Errors if the range contains linked data type cells (Stocks, Geography), which GCC High cannot resolve.
Write values, formulas, or number formats to a bounded range (e.g. 'A1:B2'). Provide 2-D arrays matching the range shape; a single value fills the whole range. Whole-row/column addresses like 'A:A' are not allowed. Use listworksheets to find worksheet names/IDs. Returns the written range; any linked data type cells GCC High cannot resolve are listed in unresolvedcells.
Clear a range's contents, formats, or both. applyto: All (default), Contents, or Formats. Use for resetting cells. Use listworksheets to find worksheet names/IDs.
List all tables in a workbook. Use listworkbooks to find itemid. Use cursor from page_info for the next page.
Get a table by name or ID. Use list_tables to find valid tables.
Create a table over a range, e.g. address 'Sheet1!A1:C5' with hasheaders=true. Use listworksheets to find sheet names.
Update a table's name, header/totals visibility, or style. Use list_tables to find valid tables.
Delete a table (the underlying cells remain). Use list_tables to find valid tables.
List data rows of a table, including their values. Use listtables to find tables. Use cursor from pageinfo for the next page. Errors if a row contains linked data type cells (Stocks, Geography), which GCC High cannot resolve.
Add one or more rows to a table. values is a 2-D array, e.g. [['Jan', 49, 37]]. Omit index to append. Use listtablecolumns to see column order.
Delete a table row by zero-based index. Use listtablerows to find row indexes.
List columns of a table, including their values. Use listtables to find tables. Use cursor from pageinfo for the next page. Errors if a column contains linked data type cells (Stocks, Geography), which GCC High cannot resolve.
Add a column to a table. values is a 2-D array including the header, e.g. [['Status'], ['Open'], ['Closed']]. Omit index to append.
Delete a column from a table by column name or ID. Use listtablecolumns to find columns. Deletes the column's data.
Sort a table by one or more columns. fields is a list of {key (zero-based column index), ascending}. Use listtablecolumns to find column indexes.
Validate Microsoft Excel credentials by calling GET /me on Microsoft Graph. Returns success and the signed-in user.
List Excel (.xlsx) workbooks in the signed-in user's own OneDrive. Optionally filter by name with query. Returns driveItem IDs to use as itemid in other tools. Use cursor from pageinfo for the next page. Workbooks in a SharePoint site library are not reachable.
Create a new, empty Excel (.xlsx) workbook in OneDrive and return its driveItem ID (use it as item_id in other tools). Optionally place it in a folder. The new workbook has one sheet named Sheet1.
Delete an Excel workbook from the signed-in user's OneDrive by its driveItem ID. This permanently removes the file. Use listworkbooks to find the itemid.
Create an Excel workbook session and return a sessionid. Pass that sessionid on subsequent tools so write-then-read stays consistent. Set persistchanges=true (default) to save changes to the file. Use listworkbooks to find item_id.
Close an Excel workbook session created with createsession. Provide the sessionid to close.
Refresh a workbook session to keep it alive; persistent sessions expire after ~5 minutes idle, non-persistent after ~7. Pass the sessionid from createsession.
List worksheets in a workbook. Use listworkbooks to find itemid. Use cursor from page_info for the next page.
Get a worksheet by name or ID. Use list_worksheets to find valid worksheets.
Add a new worksheet to a workbook. Optionally provide a name. Use listworkbooks to find itemid.
Update a worksheet's name, position, or visibility. Use list_worksheets to find valid worksheets.
Delete a worksheet by name or ID. This permanently removes the sheet and its data. Use list_worksheets to find valid worksheets.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now