@oneshot-agent/mcp-server 0.44.0 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
- package/dist/index.js +1 -1
- package/dist/tools/annotations.js +8 -2
- package/dist/tools/connections.d.ts +11 -0
- package/dist/tools/connections.js +21 -0
- package/dist/tools/discover.d.ts +4 -0
- package/dist/tools/discover.js +20 -0
- package/dist/tools/email.js +3 -3
- package/dist/tools/index.js +6 -0
- package/dist/tools/lookup-manifest.generated.js +831 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -84,6 +84,7 @@ Every tool is named `oneshot_<name>`. Below are the names.
|
|
|
84
84
|
| [Think](https://docs.oneshotagent.com/api-reference/research) | `research` `predict` `solve` |
|
|
85
85
|
| [Web and buying](https://docs.oneshotagent.com/api-reference/web-search) | `web_search` `web_read` `browser` `product_find` `commerce_buy` |
|
|
86
86
|
| [Physical mail](https://docs.oneshotagent.com/api-reference/physical-mail/overview) | `physical_mail_upload` `physical_mail_validate_address` `physical_mail_preview` `physical_mail_quote` `physical_mail_approve` `physical_mail_send` `physical_mail_recover` `physical_mail_order` `physical_mail_cancel` |
|
|
87
|
+
| [Connected systems](https://docs.oneshotagent.com/api-reference/connections/overview) | `connections_list` `ledger_invoices` `ledger_bills` `ledger_reports` `crm_accounts` `crm_contacts` `crm_opportunities` `tax_rates` `tax_calculate` `shipping_shipments` `shipping_tracking` `shipping_rates` `procurement_transactions` `procurement_bills` `procurement_suppliers` |
|
|
87
88
|
| [LinkedIn](https://docs.oneshotagent.com/api-reference/linkedin/overview) | `linkedin_connect` `linkedin_accounts` `linkedin_invite` `linkedin_message` `linkedin_reply` and more |
|
|
88
89
|
| [Build](https://docs.oneshotagent.com/api-reference/build/create) | `build` `update_build` |
|
|
89
90
|
| [Goals](https://docs.oneshotagent.com/api-reference/compute/create) | `compute` `compute_status` `compute_tasks` `compute_respond` `compute_pause` `compute_resume` `compute_fund` `compute_cancel` |
|
|
@@ -140,6 +141,16 @@ wallet. The server signs it for you. A read with no proof and no valid token is
|
|
|
140
141
|
- [Python SDK (Core)](https://pypi.org/project/oneshot-python/)
|
|
141
142
|
- [GitHub](https://github.com/oneshot-agent/sdk)
|
|
142
143
|
|
|
144
|
+
## Tool discovery
|
|
145
|
+
|
|
146
|
+
The MCP catalog contains 173 tools. `oneshot_discover_tools` is a free, read-only
|
|
147
|
+
search over the tools your token can call. Call it with no arguments for category
|
|
148
|
+
counts, `{ "query": "send a printed letter" }` to search, or `{ "category": "email" }`
|
|
149
|
+
to browse. Results contain public tool names, purposes and required inputs.
|
|
150
|
+
Category pages contain up to five tools; pass `nextCursor` as `cursor` with the
|
|
151
|
+
same query and category. `nextCursor: null` marks the end. Both stdio and hosted
|
|
152
|
+
`/mcp` expose it as an ordinary tool.
|
|
153
|
+
|
|
143
154
|
## License
|
|
144
155
|
|
|
145
156
|
MIT
|
package/dist/index.js
CHANGED
|
@@ -50,7 +50,7 @@ async function main() {
|
|
|
50
50
|
const agent = await initAgent();
|
|
51
51
|
const server = new Server({
|
|
52
52
|
name: "oneshot-mcp",
|
|
53
|
-
version: "0.
|
|
53
|
+
version: "0.46.0", // keep in sync with package.json; guarded by version.test.ts
|
|
54
54
|
}, {
|
|
55
55
|
capabilities: {
|
|
56
56
|
tools: {},
|
|
@@ -3,10 +3,13 @@ import { LOOKUP_MANIFEST, ROUTE_MANIFEST } from "./lookup-manifest.generated.js"
|
|
|
3
3
|
const read = (title, openWorld) => ({ title, readOnlyHint: true, destructiveHint: false, openWorldHint: openWorld });
|
|
4
4
|
/** Changes something. `destructive` only for delete / overwrite / revoke. */
|
|
5
5
|
const write = (title, openWorld, destructive = false) => ({ title, readOnlyHint: false, destructiveHint: destructive, openWorldHint: openWorld });
|
|
6
|
+
/** The connected-system reads (#2403): paid, but each reads the caller's own connected business system, so closed-world. */
|
|
7
|
+
const CONNECTED_SYSTEM_READ = /^\/v1\/tools\/(ledger|crm|shipping|tax|procurement)\//;
|
|
6
8
|
const OPEN = true;
|
|
7
9
|
const OWN = false;
|
|
8
10
|
const DESTRUCTIVE = true;
|
|
9
11
|
export const TOOL_ANNOTATIONS = {
|
|
12
|
+
oneshot_discover_tools: read("Discover tools", OWN),
|
|
10
13
|
oneshot_solve: read("Solve", OWN),
|
|
11
14
|
oneshot_predict: read("Predict", OWN),
|
|
12
15
|
oneshot_hunt_list: read("List Soul Hunts", OPEN),
|
|
@@ -94,12 +97,15 @@ export const TOOL_ANNOTATIONS = {
|
|
|
94
97
|
oneshot_approval_list: read("List approvals", OWN),
|
|
95
98
|
oneshot_approval_cancel: write("Cancel an approval", OWN, DESTRUCTIVE),
|
|
96
99
|
oneshot_action_policy: read("Show approval rules", OWN),
|
|
100
|
+
// Connected systems (#2403): the list is hand-written; the reads come from the route manifest below.
|
|
101
|
+
oneshot_connections_list: read("List connections", OWN),
|
|
97
102
|
// The lookup tools come from the generated manifest: paid retrieval over public or third-party data (#1445).
|
|
98
103
|
...Object.fromEntries(LOOKUP_MANIFEST.map((entry) => [`oneshot_${entry.name}`, read(entry.title, OPEN)])),
|
|
99
104
|
// The declared routes come from the same manifest (#1580). A read of the agent's own data is closed-world; a paid
|
|
100
|
-
// read (Changes, Benchmark) reaches recorded third-party data
|
|
105
|
+
// read (Changes, Benchmark) reaches recorded third-party data, a connected-system read the caller's own system; a
|
|
106
|
+
// write changes something, and a DELETE removes it.
|
|
101
107
|
...Object.fromEntries(ROUTE_MANIFEST.map((entry) => {
|
|
102
|
-
const own = !entry.paid;
|
|
108
|
+
const own = !entry.paid || CONNECTED_SYSTEM_READ.test(entry.path);
|
|
103
109
|
return [
|
|
104
110
|
`oneshot_${entry.name}`,
|
|
105
111
|
entry.readOnly ? read(entry.title, own ? OWN : OPEN) : write(entry.title, own ? OWN : OPEN, entry.method === "DELETE"),
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import type { OneShot } from "@oneshot-agent/sdk";
|
|
3
|
+
/**
|
|
4
|
+
* The agent's connections (#2403). Hand-written because `GET /v1/connections` is not a declared route: the
|
|
5
|
+
* connected-system read tools (`oneshot_ledger_*`, `oneshot_crm_*`, `oneshot_shipping_*`, `oneshot_tax_*`,
|
|
6
|
+
* `oneshot_procurement_*`) are generated from their routes and each tells the model to call this one first.
|
|
7
|
+
* Connecting and revoking stay in the console.
|
|
8
|
+
*/
|
|
9
|
+
export declare const connectionsListTool: Tool;
|
|
10
|
+
/** The route's answer as it is: `{ connections: [...] }`. Through `route()`, which the published SDK range already has. */
|
|
11
|
+
export declare function handleConnectionsList(agent: OneShot, _args: Record<string, unknown>): Promise<unknown>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The agent's connections (#2403). Hand-written because `GET /v1/connections` is not a declared route: the
|
|
3
|
+
* connected-system read tools (`oneshot_ledger_*`, `oneshot_crm_*`, `oneshot_shipping_*`, `oneshot_tax_*`,
|
|
4
|
+
* `oneshot_procurement_*`) are generated from their routes and each tells the model to call this one first.
|
|
5
|
+
* Connecting and revoking stay in the console.
|
|
6
|
+
*/
|
|
7
|
+
export const connectionsListTool = {
|
|
8
|
+
name: "oneshot_connections_list",
|
|
9
|
+
description: "List the agent's connections to business systems (accounting, CRM, shipping, tax, spend) and GitHub. " +
|
|
10
|
+
"Returns each connection's id, name, kind, system, account_label and status (only an active one can be read). " +
|
|
11
|
+
"Call it before any connected-system read: pick the connection by system and account_label and pass its id as connection_id. " +
|
|
12
|
+
"Connections are added and revoked in the console. Free.",
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: "object",
|
|
15
|
+
properties: {},
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
/** The route's answer as it is: `{ connections: [...] }`. Through `route()`, which the published SDK range already has. */
|
|
19
|
+
export async function handleConnectionsList(agent, _args) {
|
|
20
|
+
return agent.route("GET", "/v1/connections");
|
|
21
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import type { OneShot } from '@oneshot-agent/sdk';
|
|
3
|
+
export declare const discoverToolsTool: Tool;
|
|
4
|
+
export declare function handleDiscoverTools(agent: OneShot, args: Record<string, unknown>): Promise<unknown>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const discoverToolsTool = {
|
|
2
|
+
name: 'oneshot_discover_tools',
|
|
3
|
+
description: 'Find OneShot tools by task or category. Free. Returns public names, purposes and required inputs. With no query or category, lists categories. Category pages contain up to five tools; pass nextCursor with the same query and category.',
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: 'object',
|
|
6
|
+
properties: {
|
|
7
|
+
query: { type: 'string', description: 'Task or tool name to search for.' },
|
|
8
|
+
category: { type: 'string', description: 'Category ID from the directory.' },
|
|
9
|
+
cursor: { type: 'string', description: 'Opaque nextCursor from a category page.' },
|
|
10
|
+
},
|
|
11
|
+
additionalProperties: false,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
export async function handleDiscoverTools(agent, args) {
|
|
15
|
+
if (Object.entries(args).some(([key, value]) => !['query', 'category', 'cursor'].includes(key) || typeof value !== 'string')) {
|
|
16
|
+
throw new Error('Expected optional query, category and cursor strings.');
|
|
17
|
+
}
|
|
18
|
+
// route() is available in the published SDK too; discoverTools() wraps this same free request.
|
|
19
|
+
return agent.route('GET', '/v1/tools/discover', { query: args, paid: false });
|
|
20
|
+
}
|
package/dist/tools/email.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export const emailTool = {
|
|
2
2
|
name: "oneshot_email",
|
|
3
|
-
description: "Send an email. Supports HTML body, attachments, and threaded replies (set reply_to_email_id to an inbound email id from oneshot_inbox_list/oneshot_inbox_get). Paid tool — quote provided before payment.\n\n" +
|
|
3
|
+
description: "Send an email. Supports HTML body, attachments, and threaded replies (set reply_to_email_id to an inbound email id from oneshot_inbox_list/oneshot_inbox_get, or one this agent sent). Paid tool — quote provided before payment.\n\n" +
|
|
4
4
|
"Sending requires a domain the agent owns. A fresh account has none — call oneshot_list_domains first to see what's already owned. If there is no usable domain, pass from_domain with a new domain to register it. A call with a new from_domain only quotes — nothing is charged — and returns status 'confirmation_required' with the exact cost (domain registration plus fees) and a quote_id. Tell the user that exact computed number, never a guessed or approximate one, and only once they say to proceed, call this again with the same arguments and confirm_new_domain set to that quote_id: that registers the domain, charges exactly the quoted total, and sends the email in one call. The workspace balance must cover it, or the call fails with insufficient_credits.",
|
|
5
5
|
inputSchema: {
|
|
6
6
|
type: "object",
|
|
7
7
|
properties: {
|
|
8
8
|
to: {
|
|
9
9
|
type: "string",
|
|
10
|
-
description: "Recipient email address (or comma-separated list). Optional when reply_to_email_id is set — defaults to the
|
|
10
|
+
description: "Recipient email address (or comma-separated list). Optional when reply_to_email_id is set — defaults to the other party.",
|
|
11
11
|
},
|
|
12
12
|
subject: {
|
|
13
13
|
type: "string",
|
|
@@ -15,7 +15,7 @@ export const emailTool = {
|
|
|
15
15
|
},
|
|
16
16
|
reply_to_email_id: {
|
|
17
17
|
type: "string",
|
|
18
|
-
description: "Reply within a thread: id of an inbound email (from oneshot_inbox_list/oneshot_inbox_get). Sets In-Reply-To/References headers so mail clients group the conversation.",
|
|
18
|
+
description: "Reply within a thread: id of an inbound email (from oneshot_inbox_list/oneshot_inbox_get), or one this agent sent. Sets In-Reply-To/References headers so mail clients group the conversation.",
|
|
19
19
|
},
|
|
20
20
|
body: {
|
|
21
21
|
type: "string",
|
package/dist/tools/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { discoverToolsTool, handleDiscoverTools } from './discover.js';
|
|
1
2
|
import { emailTool, handleEmail } from "./email.js";
|
|
2
3
|
import { voiceTool, handleVoice } from "./voice.js";
|
|
3
4
|
import { voiceNumberProvisionTool, voiceNumbersTool, voiceInboundSetTool, voiceInboundDisableTool, voiceInboundCallsTool, handleVoiceNumberProvision, handleVoiceNumbers, handleVoiceInboundSet, handleVoiceInboundDisable, handleVoiceInboundCalls, } from "./voice-inbound.js";
|
|
@@ -28,8 +29,10 @@ import { huntListTool, huntStatusTool, huntPredictTool, huntCollectionTool, hunt
|
|
|
28
29
|
import { TOOL_ANNOTATIONS } from "./annotations.js";
|
|
29
30
|
import { lookupToolDefinitions, lookupHandlers, routeToolDefinitions, routeHandlers } from "./lookup.js";
|
|
30
31
|
import { physicalMailSendTool, physicalMailUploadTool, handlePhysicalMailSend, handlePhysicalMailUpload } from "./physical-mail.js";
|
|
32
|
+
import { connectionsListTool, handleConnectionsList } from "./connections.js";
|
|
31
33
|
import { spendBreakdownTool, rocsTool, rocsByGoalTool, receiptsListTool, tagReceiptValueTool, handleSpendBreakdown, handleRocs, handleRocsByGoal, handleReceiptsList, handleTagReceiptValue } from "./analytics.js";
|
|
32
34
|
const toolDefinitions = [
|
|
35
|
+
discoverToolsTool,
|
|
33
36
|
emailTool,
|
|
34
37
|
voiceTool,
|
|
35
38
|
smsTool,
|
|
@@ -112,6 +115,7 @@ const toolDefinitions = [
|
|
|
112
115
|
approvalListTool,
|
|
113
116
|
approvalCancelTool,
|
|
114
117
|
actionPolicyGetTool,
|
|
118
|
+
connectionsListTool,
|
|
115
119
|
...lookupToolDefinitions,
|
|
116
120
|
...routeToolDefinitions,
|
|
117
121
|
];
|
|
@@ -124,6 +128,7 @@ export const tools = toolDefinitions.map((tool) => {
|
|
|
124
128
|
return { ...tool, title: hints.title, annotations: { ...hints } };
|
|
125
129
|
});
|
|
126
130
|
const handlers = {
|
|
131
|
+
oneshot_discover_tools: handleDiscoverTools,
|
|
127
132
|
"oneshot_email": handleEmail,
|
|
128
133
|
"oneshot_voice": handleVoice,
|
|
129
134
|
"oneshot_sms": handleSms,
|
|
@@ -209,6 +214,7 @@ const handlers = {
|
|
|
209
214
|
"oneshot_approval_list": handleApprovalList,
|
|
210
215
|
"oneshot_approval_cancel": handleApprovalCancel,
|
|
211
216
|
"oneshot_action_policy": handleActionPolicyGet,
|
|
217
|
+
"oneshot_connections_list": handleConnectionsList,
|
|
212
218
|
...lookupHandlers,
|
|
213
219
|
...routeHandlers,
|
|
214
220
|
};
|
|
@@ -111,6 +111,29 @@ export const LOOKUP_MANIFEST = [
|
|
|
111
111
|
"limit": 1
|
|
112
112
|
}
|
|
113
113
|
},
|
|
114
|
+
{
|
|
115
|
+
"name": "compound_hazards",
|
|
116
|
+
"path": "lookup/compound-hazards",
|
|
117
|
+
"title": "Compound Hazards",
|
|
118
|
+
"description": "Give the GHS hazard classification of a chemical compound by its compound identifier (CID) or by a name: a common, trade or systematic name, or a CAS registry number such as 50-00-0. Returns one classification per classifying source, in the source order: the GHS pictograms with their codes (GHS05), the signal word, the hazard statements with their codes (H314) and the precautionary statement codes. Only two classifying sources are returned: the EU harmonised classification (Regulation (EC) No 1272/2008) and the Hazardous Substances Data Bank of the US National Library of Medicine; every other source is left out, so a compound classified only by others returns an empty list. `classified` is true when a returned classification has a hazard statement. A name matching several compounds uses the first and lists them all in `matched_cids`. `compound` is null when the name or CID matches nothing, or the source has no classification for the compound. Give exactly one of `cid` and `name`. Toxicity values, exposure limits, the full safety data sheet, and any synthesis or preparation data are not returned.",
|
|
119
|
+
"inputSchema": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"properties": {
|
|
122
|
+
"cid": {
|
|
123
|
+
"type": "integer",
|
|
124
|
+
"description": "The compound identifier (CID), for example 712. From 1 to 999999999."
|
|
125
|
+
},
|
|
126
|
+
"name": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"description": "A common, trade or systematic name, or a CAS registry number such as 50-00-0. 2 to 200 characters."
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"required": []
|
|
132
|
+
},
|
|
133
|
+
"example": {
|
|
134
|
+
"name": "50-00-0"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
114
137
|
{
|
|
115
138
|
"name": "compound_properties",
|
|
116
139
|
"path": "lookup/compound-properties",
|
|
@@ -806,6 +829,44 @@ export const LOOKUP_MANIFEST = [
|
|
|
806
829
|
"height_in": 48
|
|
807
830
|
}
|
|
808
831
|
},
|
|
832
|
+
{
|
|
833
|
+
"name": "vehicle_fuel_economy",
|
|
834
|
+
"path": "lookup/vehicle-fuel-economy",
|
|
835
|
+
"title": "Fuel Economy",
|
|
836
|
+
"description": "Get federal fuel economy ratings and annual fuel expenditure for US light-duty vehicles from model year 1984 on. The model name must be the source's: Camry, Camry AWD LE/SE and Camry Hybrid LE are three separate models. Make and model matching is case-insensitive. The result lists the engine and transmission options in source order. `variant` picks among the options by case-insensitive text, for example 4 cyl, 2.5 L or S8; without it the first option is used. An unknown model or unmatched variant completes with `matched: false` and the available options. City, highway and combined ratings are miles per gallon, or miles per gallon equivalent for electric vehicles. Unavailable or inapplicable values are null. The source refreshes weekly; updated_on dates the selected record.",
|
|
837
|
+
"inputSchema": {
|
|
838
|
+
"type": "object",
|
|
839
|
+
"properties": {
|
|
840
|
+
"model_year": {
|
|
841
|
+
"type": "integer",
|
|
842
|
+
"description": "The model year, from 1984 through next calendar year. At least 1984. Model year cannot be later than next year."
|
|
843
|
+
},
|
|
844
|
+
"make": {
|
|
845
|
+
"type": "string",
|
|
846
|
+
"description": "The vehicle make, for example Toyota. 2 to 40 characters."
|
|
847
|
+
},
|
|
848
|
+
"model": {
|
|
849
|
+
"type": "string",
|
|
850
|
+
"description": "The model as the source names it, for example Camry or Camry Hybrid LE. 1 to 60 characters."
|
|
851
|
+
},
|
|
852
|
+
"variant": {
|
|
853
|
+
"type": "string",
|
|
854
|
+
"description": "Case-insensitive text in the option description, for example 4 cyl, 2.5 L or S8; omitted selects the first option. 1 to 60 characters."
|
|
855
|
+
}
|
|
856
|
+
},
|
|
857
|
+
"required": [
|
|
858
|
+
"model_year",
|
|
859
|
+
"make",
|
|
860
|
+
"model"
|
|
861
|
+
]
|
|
862
|
+
},
|
|
863
|
+
"example": {
|
|
864
|
+
"model_year": 2020,
|
|
865
|
+
"make": "Toyota",
|
|
866
|
+
"model": "Camry",
|
|
867
|
+
"variant": "4 cyl"
|
|
868
|
+
}
|
|
869
|
+
},
|
|
809
870
|
{
|
|
810
871
|
"name": "gene_pathways",
|
|
811
872
|
"path": "lookup/gene-pathways",
|
|
@@ -1270,6 +1331,39 @@ export const LOOKUP_MANIFEST = [
|
|
|
1270
1331
|
"include_sequence": false
|
|
1271
1332
|
}
|
|
1272
1333
|
},
|
|
1334
|
+
{
|
|
1335
|
+
"name": "protein_resolve",
|
|
1336
|
+
"path": "resolve/protein",
|
|
1337
|
+
"title": "Protein Resolve",
|
|
1338
|
+
"description": "Protein identities from UniProtKB under CC BY 4.0, attributed to the UniProt Consortium. For research and education only; not medical advice. Give a gene symbol or synonym (TP53, P53, HER2), an entry name (P53_HUMAN), or a protein name (insulin). Exact gene names and synonyms are searched first. If none match, protein names are searched unless the query is a single uppercase token or contains digits without spaces. taxon_id defaults to human (9606); reviewed_only defaults to true. Entry names are resolved directly across organisms and review statuses. Returns up to limit matches, reviewed entries first then source order, with recommended full protein name, primary gene, gene synonyms, organism, annotation score and how each matched. ambiguous is true when multiple matches are kept and none matched an entry name or primary gene. total is the sum of source counts for the searches made. With reviewed_only false, unreviewed entries are searched and counted only when reviewed matches do not fill limit. No match returns an empty list. Absent scalar values are null. Use the accession with Protein Function, Sequence, Structure or Domains for those facts. UniProt releases updates every eight weeks.",
|
|
1339
|
+
"inputSchema": {
|
|
1340
|
+
"type": "object",
|
|
1341
|
+
"properties": {
|
|
1342
|
+
"query": {
|
|
1343
|
+
"type": "string",
|
|
1344
|
+
"description": "A gene symbol or synonym, entry name, or protein name; letters, digits, spaces and the characters . _ / - only. 1 to 60 characters."
|
|
1345
|
+
},
|
|
1346
|
+
"taxon_id": {
|
|
1347
|
+
"type": "integer",
|
|
1348
|
+
"description": "The organism taxonomy ID; human (9606) by default. From 1 to 999999999. Defaults to `9606`."
|
|
1349
|
+
},
|
|
1350
|
+
"reviewed_only": {
|
|
1351
|
+
"type": "boolean",
|
|
1352
|
+
"description": "Only reviewed entries; false includes unreviewed entries. Defaults to `true`."
|
|
1353
|
+
},
|
|
1354
|
+
"limit": {
|
|
1355
|
+
"type": "integer",
|
|
1356
|
+
"description": "The most matches to return. From 1 to 10. Defaults to `5`."
|
|
1357
|
+
}
|
|
1358
|
+
},
|
|
1359
|
+
"required": [
|
|
1360
|
+
"query"
|
|
1361
|
+
]
|
|
1362
|
+
},
|
|
1363
|
+
"example": {
|
|
1364
|
+
"query": "TP53"
|
|
1365
|
+
}
|
|
1366
|
+
},
|
|
1273
1367
|
{
|
|
1274
1368
|
"name": "protein_sequence",
|
|
1275
1369
|
"path": "lookup/protein-sequence",
|
|
@@ -1958,6 +2052,147 @@ export const ROUTE_MANIFEST = [
|
|
|
1958
2052
|
"start_url": "https://example.com/login"
|
|
1959
2053
|
}
|
|
1960
2054
|
},
|
|
2055
|
+
{
|
|
2056
|
+
"name": "crm_accounts",
|
|
2057
|
+
"method": "POST",
|
|
2058
|
+
"path": "/v1/tools/crm/accounts",
|
|
2059
|
+
"paid": true,
|
|
2060
|
+
"readOnly": true,
|
|
2061
|
+
"title": "CRM accounts",
|
|
2062
|
+
"description": "Read accounts from a connected Salesforce or HubSpot account. Read-only. Nothing fetched is stored. Contacts include personal data, returned inline only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2063
|
+
"inputSchema": {
|
|
2064
|
+
"type": "object",
|
|
2065
|
+
"properties": {
|
|
2066
|
+
"connection_id": {
|
|
2067
|
+
"type": "string",
|
|
2068
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2069
|
+
},
|
|
2070
|
+
"query": {
|
|
2071
|
+
"type": "string",
|
|
2072
|
+
"description": "Name contains this text, case insensitive. A filtered page can be empty; continue while next_cursor is present."
|
|
2073
|
+
},
|
|
2074
|
+
"updated_since": {
|
|
2075
|
+
"type": "string",
|
|
2076
|
+
"description": "Updated on or after this ISO date (YYYY-MM-DD, UTC)"
|
|
2077
|
+
},
|
|
2078
|
+
"limit": {
|
|
2079
|
+
"type": "number",
|
|
2080
|
+
"description": "Records per page (1 to 100, default 25)"
|
|
2081
|
+
},
|
|
2082
|
+
"cursor": {
|
|
2083
|
+
"type": "string",
|
|
2084
|
+
"description": "The next_cursor of the previous page; keep the same filters"
|
|
2085
|
+
}
|
|
2086
|
+
},
|
|
2087
|
+
"required": [
|
|
2088
|
+
"connection_id"
|
|
2089
|
+
]
|
|
2090
|
+
},
|
|
2091
|
+
"example": {
|
|
2092
|
+
"connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
|
|
2093
|
+
"limit": 25
|
|
2094
|
+
}
|
|
2095
|
+
},
|
|
2096
|
+
{
|
|
2097
|
+
"name": "crm_contacts",
|
|
2098
|
+
"method": "POST",
|
|
2099
|
+
"path": "/v1/tools/crm/contacts",
|
|
2100
|
+
"paid": true,
|
|
2101
|
+
"readOnly": true,
|
|
2102
|
+
"title": "CRM contacts",
|
|
2103
|
+
"description": "Read contacts from a connected Salesforce or HubSpot account. Read-only. Nothing fetched is stored. Contacts include personal data, returned inline only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2104
|
+
"inputSchema": {
|
|
2105
|
+
"type": "object",
|
|
2106
|
+
"properties": {
|
|
2107
|
+
"connection_id": {
|
|
2108
|
+
"type": "string",
|
|
2109
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2110
|
+
},
|
|
2111
|
+
"query": {
|
|
2112
|
+
"type": "string",
|
|
2113
|
+
"description": "Name contains this text, case insensitive. A filtered page can be empty; continue while next_cursor is present."
|
|
2114
|
+
},
|
|
2115
|
+
"updated_since": {
|
|
2116
|
+
"type": "string",
|
|
2117
|
+
"description": "Updated on or after this ISO date (YYYY-MM-DD, UTC)"
|
|
2118
|
+
},
|
|
2119
|
+
"limit": {
|
|
2120
|
+
"type": "number",
|
|
2121
|
+
"description": "Records per page (1 to 100, default 25)"
|
|
2122
|
+
},
|
|
2123
|
+
"cursor": {
|
|
2124
|
+
"type": "string",
|
|
2125
|
+
"description": "The next_cursor of the previous page; keep the same filters"
|
|
2126
|
+
},
|
|
2127
|
+
"account_id": {
|
|
2128
|
+
"type": "string",
|
|
2129
|
+
"description": "Only records associated with this account id"
|
|
2130
|
+
}
|
|
2131
|
+
},
|
|
2132
|
+
"required": [
|
|
2133
|
+
"connection_id"
|
|
2134
|
+
]
|
|
2135
|
+
},
|
|
2136
|
+
"example": {
|
|
2137
|
+
"connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
|
|
2138
|
+
"limit": 25
|
|
2139
|
+
}
|
|
2140
|
+
},
|
|
2141
|
+
{
|
|
2142
|
+
"name": "crm_opportunities",
|
|
2143
|
+
"method": "POST",
|
|
2144
|
+
"path": "/v1/tools/crm/opportunities",
|
|
2145
|
+
"paid": true,
|
|
2146
|
+
"readOnly": true,
|
|
2147
|
+
"title": "CRM opportunities",
|
|
2148
|
+
"description": "Read opportunities from a connected Salesforce or HubSpot account. Read-only. Nothing fetched is stored. Contacts include personal data, returned inline only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2149
|
+
"inputSchema": {
|
|
2150
|
+
"type": "object",
|
|
2151
|
+
"properties": {
|
|
2152
|
+
"connection_id": {
|
|
2153
|
+
"type": "string",
|
|
2154
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2155
|
+
},
|
|
2156
|
+
"query": {
|
|
2157
|
+
"type": "string",
|
|
2158
|
+
"description": "Name contains this text, case insensitive. A filtered page can be empty; continue while next_cursor is present."
|
|
2159
|
+
},
|
|
2160
|
+
"updated_since": {
|
|
2161
|
+
"type": "string",
|
|
2162
|
+
"description": "Updated on or after this ISO date (YYYY-MM-DD, UTC)"
|
|
2163
|
+
},
|
|
2164
|
+
"limit": {
|
|
2165
|
+
"type": "number",
|
|
2166
|
+
"description": "Records per page (1 to 100, default 25)"
|
|
2167
|
+
},
|
|
2168
|
+
"cursor": {
|
|
2169
|
+
"type": "string",
|
|
2170
|
+
"description": "The next_cursor of the previous page; keep the same filters"
|
|
2171
|
+
},
|
|
2172
|
+
"account_id": {
|
|
2173
|
+
"type": "string",
|
|
2174
|
+
"description": "Only records associated with this account id"
|
|
2175
|
+
},
|
|
2176
|
+
"status": {
|
|
2177
|
+
"type": "string",
|
|
2178
|
+
"enum": [
|
|
2179
|
+
"open",
|
|
2180
|
+
"won",
|
|
2181
|
+
"lost",
|
|
2182
|
+
"all"
|
|
2183
|
+
],
|
|
2184
|
+
"description": "Opportunity status (default all)"
|
|
2185
|
+
}
|
|
2186
|
+
},
|
|
2187
|
+
"required": [
|
|
2188
|
+
"connection_id"
|
|
2189
|
+
]
|
|
2190
|
+
},
|
|
2191
|
+
"example": {
|
|
2192
|
+
"connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
|
|
2193
|
+
"limit": 25
|
|
2194
|
+
}
|
|
2195
|
+
},
|
|
1961
2196
|
{
|
|
1962
2197
|
"name": "watch_delete",
|
|
1963
2198
|
"method": "DELETE",
|
|
@@ -2078,6 +2313,174 @@ export const ROUTE_MANIFEST = [
|
|
|
2078
2313
|
"phone_number_id": "pn_01HX"
|
|
2079
2314
|
}
|
|
2080
2315
|
},
|
|
2316
|
+
{
|
|
2317
|
+
"name": "ledger_bills",
|
|
2318
|
+
"method": "POST",
|
|
2319
|
+
"path": "/v1/tools/ledger/bills",
|
|
2320
|
+
"paid": true,
|
|
2321
|
+
"readOnly": true,
|
|
2322
|
+
"title": "Ledger bills",
|
|
2323
|
+
"description": "Bills (payables) from a connected accounting system (QuickBooks, Zoho Books, Xero, NetSuite), filtered by date, status and counterparty. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2324
|
+
"inputSchema": {
|
|
2325
|
+
"type": "object",
|
|
2326
|
+
"properties": {
|
|
2327
|
+
"connection_id": {
|
|
2328
|
+
"type": "string",
|
|
2329
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2330
|
+
},
|
|
2331
|
+
"limit": {
|
|
2332
|
+
"type": "number",
|
|
2333
|
+
"description": "Records per page (1 to 100, default 25)"
|
|
2334
|
+
},
|
|
2335
|
+
"cursor": {
|
|
2336
|
+
"type": "string",
|
|
2337
|
+
"description": "The next_cursor of the previous page"
|
|
2338
|
+
},
|
|
2339
|
+
"from": {
|
|
2340
|
+
"type": "string",
|
|
2341
|
+
"description": "Records issued on or after this date (YYYY-MM-DD)"
|
|
2342
|
+
},
|
|
2343
|
+
"to": {
|
|
2344
|
+
"type": "string",
|
|
2345
|
+
"description": "Records issued on or before this date (YYYY-MM-DD)"
|
|
2346
|
+
},
|
|
2347
|
+
"status": {
|
|
2348
|
+
"type": "string",
|
|
2349
|
+
"enum": [
|
|
2350
|
+
"open",
|
|
2351
|
+
"paid",
|
|
2352
|
+
"overdue",
|
|
2353
|
+
"all"
|
|
2354
|
+
],
|
|
2355
|
+
"description": "Payment status filter (default all)"
|
|
2356
|
+
},
|
|
2357
|
+
"counterparty": {
|
|
2358
|
+
"type": "string",
|
|
2359
|
+
"description": "Only records whose counterparty name contains this text"
|
|
2360
|
+
}
|
|
2361
|
+
},
|
|
2362
|
+
"required": [
|
|
2363
|
+
"connection_id"
|
|
2364
|
+
]
|
|
2365
|
+
},
|
|
2366
|
+
"example": {
|
|
2367
|
+
"connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
|
|
2368
|
+
"status": "overdue",
|
|
2369
|
+
"limit": 25
|
|
2370
|
+
}
|
|
2371
|
+
},
|
|
2372
|
+
{
|
|
2373
|
+
"name": "ledger_invoices",
|
|
2374
|
+
"method": "POST",
|
|
2375
|
+
"path": "/v1/tools/ledger/invoices",
|
|
2376
|
+
"paid": true,
|
|
2377
|
+
"readOnly": true,
|
|
2378
|
+
"title": "Ledger invoices",
|
|
2379
|
+
"description": "Invoices from a connected accounting system (QuickBooks, Zoho Books, Xero, NetSuite), filtered by date, status and counterparty. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2380
|
+
"inputSchema": {
|
|
2381
|
+
"type": "object",
|
|
2382
|
+
"properties": {
|
|
2383
|
+
"connection_id": {
|
|
2384
|
+
"type": "string",
|
|
2385
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2386
|
+
},
|
|
2387
|
+
"limit": {
|
|
2388
|
+
"type": "number",
|
|
2389
|
+
"description": "Records per page (1 to 100, default 25)"
|
|
2390
|
+
},
|
|
2391
|
+
"cursor": {
|
|
2392
|
+
"type": "string",
|
|
2393
|
+
"description": "The next_cursor of the previous page"
|
|
2394
|
+
},
|
|
2395
|
+
"from": {
|
|
2396
|
+
"type": "string",
|
|
2397
|
+
"description": "Records issued on or after this date (YYYY-MM-DD)"
|
|
2398
|
+
},
|
|
2399
|
+
"to": {
|
|
2400
|
+
"type": "string",
|
|
2401
|
+
"description": "Records issued on or before this date (YYYY-MM-DD)"
|
|
2402
|
+
},
|
|
2403
|
+
"status": {
|
|
2404
|
+
"type": "string",
|
|
2405
|
+
"enum": [
|
|
2406
|
+
"open",
|
|
2407
|
+
"paid",
|
|
2408
|
+
"overdue",
|
|
2409
|
+
"all"
|
|
2410
|
+
],
|
|
2411
|
+
"description": "Payment status filter (default all)"
|
|
2412
|
+
},
|
|
2413
|
+
"counterparty": {
|
|
2414
|
+
"type": "string",
|
|
2415
|
+
"description": "Only records whose counterparty name contains this text"
|
|
2416
|
+
}
|
|
2417
|
+
},
|
|
2418
|
+
"required": [
|
|
2419
|
+
"connection_id"
|
|
2420
|
+
]
|
|
2421
|
+
},
|
|
2422
|
+
"example": {
|
|
2423
|
+
"connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
|
|
2424
|
+
"status": "open",
|
|
2425
|
+
"limit": 25
|
|
2426
|
+
}
|
|
2427
|
+
},
|
|
2428
|
+
{
|
|
2429
|
+
"name": "ledger_reports",
|
|
2430
|
+
"method": "POST",
|
|
2431
|
+
"path": "/v1/tools/ledger/reports",
|
|
2432
|
+
"paid": true,
|
|
2433
|
+
"readOnly": true,
|
|
2434
|
+
"title": "Ledger reports",
|
|
2435
|
+
"description": "A report from a connected accounting system. QuickBooks: balance_sheet, profit_and_loss and trial_balance, dated with as_of or from/to. Xero: the same three, with a profit_and_loss of at most 365 days. Zoho Books: trial_balance as of today only (no as_of); no balance_sheet or profit_and_loss. NetSuite reports are not supported. A report the system does not serve is refused as unsupported_for_system before payment. Read-only. Nothing fetched is stored. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2436
|
+
"inputSchema": {
|
|
2437
|
+
"type": "object",
|
|
2438
|
+
"properties": {
|
|
2439
|
+
"connection_id": {
|
|
2440
|
+
"type": "string",
|
|
2441
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2442
|
+
},
|
|
2443
|
+
"limit": {
|
|
2444
|
+
"type": "number",
|
|
2445
|
+
"description": "Records per page (1 to 100, default 25)"
|
|
2446
|
+
},
|
|
2447
|
+
"cursor": {
|
|
2448
|
+
"type": "string",
|
|
2449
|
+
"description": "The next_cursor of the previous page"
|
|
2450
|
+
},
|
|
2451
|
+
"type": {
|
|
2452
|
+
"type": "string",
|
|
2453
|
+
"enum": [
|
|
2454
|
+
"balance_sheet",
|
|
2455
|
+
"profit_and_loss",
|
|
2456
|
+
"trial_balance"
|
|
2457
|
+
],
|
|
2458
|
+
"description": "The report. QuickBooks and Xero: all three. Zoho Books: trial_balance only. NetSuite: no reports"
|
|
2459
|
+
},
|
|
2460
|
+
"as_of": {
|
|
2461
|
+
"type": "string",
|
|
2462
|
+
"description": "Balance sheet and trial balance: the date the report stands at (YYYY-MM-DD). QuickBooks and Xero; Zoho Books serves the trial balance as of today"
|
|
2463
|
+
},
|
|
2464
|
+
"from": {
|
|
2465
|
+
"type": "string",
|
|
2466
|
+
"description": "Profit and loss: the first day of the period (YYYY-MM-DD)"
|
|
2467
|
+
},
|
|
2468
|
+
"to": {
|
|
2469
|
+
"type": "string",
|
|
2470
|
+
"description": "Profit and loss: the last day of the period (YYYY-MM-DD)"
|
|
2471
|
+
}
|
|
2472
|
+
},
|
|
2473
|
+
"required": [
|
|
2474
|
+
"connection_id",
|
|
2475
|
+
"type"
|
|
2476
|
+
]
|
|
2477
|
+
},
|
|
2478
|
+
"example": {
|
|
2479
|
+
"connection_id": "5f4a3b2c-1d0e-4f9a-8b7c-6d5e4f3a2b1c",
|
|
2480
|
+
"type": "balance_sheet",
|
|
2481
|
+
"as_of": "2026-09-30"
|
|
2482
|
+
}
|
|
2483
|
+
},
|
|
2081
2484
|
{
|
|
2082
2485
|
"name": "linkedin_sync_run",
|
|
2083
2486
|
"method": "GET",
|
|
@@ -2185,6 +2588,132 @@ export const ROUTE_MANIFEST = [
|
|
|
2185
2588
|
}
|
|
2186
2589
|
}
|
|
2187
2590
|
},
|
|
2591
|
+
{
|
|
2592
|
+
"name": "procurement_bills",
|
|
2593
|
+
"method": "POST",
|
|
2594
|
+
"path": "/v1/tools/procurement/bills",
|
|
2595
|
+
"paid": true,
|
|
2596
|
+
"readOnly": true,
|
|
2597
|
+
"title": "Procurement bills",
|
|
2598
|
+
"description": "Bills awaiting or past approval, read from the customer's connected spend system. Read-only: nothing is approved or paid. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2599
|
+
"inputSchema": {
|
|
2600
|
+
"type": "object",
|
|
2601
|
+
"properties": {
|
|
2602
|
+
"connection_id": {
|
|
2603
|
+
"type": "string",
|
|
2604
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2605
|
+
},
|
|
2606
|
+
"from": {
|
|
2607
|
+
"type": "string",
|
|
2608
|
+
"description": "Bills issued on or after this day (YYYY-MM-DD, UTC)"
|
|
2609
|
+
},
|
|
2610
|
+
"to": {
|
|
2611
|
+
"type": "string",
|
|
2612
|
+
"description": "Bills issued on or before this day (YYYY-MM-DD, UTC)"
|
|
2613
|
+
},
|
|
2614
|
+
"limit": {
|
|
2615
|
+
"type": "integer",
|
|
2616
|
+
"description": "Bills per page, 1 to 100 (default 25)"
|
|
2617
|
+
},
|
|
2618
|
+
"cursor": {
|
|
2619
|
+
"type": "string",
|
|
2620
|
+
"description": "The next_cursor of the previous page"
|
|
2621
|
+
}
|
|
2622
|
+
},
|
|
2623
|
+
"required": [
|
|
2624
|
+
"connection_id"
|
|
2625
|
+
]
|
|
2626
|
+
},
|
|
2627
|
+
"example": {
|
|
2628
|
+
"connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
|
|
2629
|
+
"from": "2026-09-01",
|
|
2630
|
+
"limit": 25
|
|
2631
|
+
}
|
|
2632
|
+
},
|
|
2633
|
+
{
|
|
2634
|
+
"name": "procurement_suppliers",
|
|
2635
|
+
"method": "POST",
|
|
2636
|
+
"path": "/v1/tools/procurement/suppliers",
|
|
2637
|
+
"paid": true,
|
|
2638
|
+
"readOnly": true,
|
|
2639
|
+
"title": "Procurement suppliers",
|
|
2640
|
+
"description": "Suppliers with their category and all-time spend, read from the customer's connected spend system. Read-only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2641
|
+
"inputSchema": {
|
|
2642
|
+
"type": "object",
|
|
2643
|
+
"properties": {
|
|
2644
|
+
"connection_id": {
|
|
2645
|
+
"type": "string",
|
|
2646
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2647
|
+
},
|
|
2648
|
+
"from": {
|
|
2649
|
+
"type": "string",
|
|
2650
|
+
"description": "Suppliers added on or after this day (YYYY-MM-DD, UTC)"
|
|
2651
|
+
},
|
|
2652
|
+
"to": {
|
|
2653
|
+
"type": "string",
|
|
2654
|
+
"description": "Suppliers added on or before this day (YYYY-MM-DD, UTC)"
|
|
2655
|
+
},
|
|
2656
|
+
"limit": {
|
|
2657
|
+
"type": "integer",
|
|
2658
|
+
"description": "Suppliers per page, 1 to 100 (default 25)"
|
|
2659
|
+
},
|
|
2660
|
+
"cursor": {
|
|
2661
|
+
"type": "string",
|
|
2662
|
+
"description": "The next_cursor of the previous page"
|
|
2663
|
+
}
|
|
2664
|
+
},
|
|
2665
|
+
"required": [
|
|
2666
|
+
"connection_id"
|
|
2667
|
+
]
|
|
2668
|
+
},
|
|
2669
|
+
"example": {
|
|
2670
|
+
"connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
|
|
2671
|
+
"limit": 25
|
|
2672
|
+
}
|
|
2673
|
+
},
|
|
2674
|
+
{
|
|
2675
|
+
"name": "procurement_transactions",
|
|
2676
|
+
"method": "POST",
|
|
2677
|
+
"path": "/v1/tools/procurement/transactions",
|
|
2678
|
+
"paid": true,
|
|
2679
|
+
"readOnly": true,
|
|
2680
|
+
"title": "Procurement transactions",
|
|
2681
|
+
"description": "Card and spend transactions read from the customer's connected spend system. Read-only. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2682
|
+
"inputSchema": {
|
|
2683
|
+
"type": "object",
|
|
2684
|
+
"properties": {
|
|
2685
|
+
"connection_id": {
|
|
2686
|
+
"type": "string",
|
|
2687
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2688
|
+
},
|
|
2689
|
+
"from": {
|
|
2690
|
+
"type": "string",
|
|
2691
|
+
"description": "Transactions made on or after this day (YYYY-MM-DD, UTC)"
|
|
2692
|
+
},
|
|
2693
|
+
"to": {
|
|
2694
|
+
"type": "string",
|
|
2695
|
+
"description": "Transactions made on or before this day (YYYY-MM-DD, UTC)"
|
|
2696
|
+
},
|
|
2697
|
+
"limit": {
|
|
2698
|
+
"type": "integer",
|
|
2699
|
+
"description": "Transactions per page, 1 to 100 (default 25)"
|
|
2700
|
+
},
|
|
2701
|
+
"cursor": {
|
|
2702
|
+
"type": "string",
|
|
2703
|
+
"description": "The next_cursor of the previous page"
|
|
2704
|
+
}
|
|
2705
|
+
},
|
|
2706
|
+
"required": [
|
|
2707
|
+
"connection_id"
|
|
2708
|
+
]
|
|
2709
|
+
},
|
|
2710
|
+
"example": {
|
|
2711
|
+
"connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
|
|
2712
|
+
"from": "2026-10-01",
|
|
2713
|
+
"to": "2026-10-15",
|
|
2714
|
+
"limit": 25
|
|
2715
|
+
}
|
|
2716
|
+
},
|
|
2188
2717
|
{
|
|
2189
2718
|
"name": "physical_mail_recover",
|
|
2190
2719
|
"method": "GET",
|
|
@@ -2277,6 +2806,308 @@ export const ROUTE_MANIFEST = [
|
|
|
2277
2806
|
"limit": 10
|
|
2278
2807
|
}
|
|
2279
2808
|
},
|
|
2809
|
+
{
|
|
2810
|
+
"name": "shipping_rates",
|
|
2811
|
+
"method": "POST",
|
|
2812
|
+
"path": "/v1/tools/shipping/rates",
|
|
2813
|
+
"paid": true,
|
|
2814
|
+
"readOnly": true,
|
|
2815
|
+
"title": "Shipping rates",
|
|
2816
|
+
"description": "Rates already quoted on a shipment, read from the customer's connected shipping system. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2817
|
+
"inputSchema": {
|
|
2818
|
+
"type": "object",
|
|
2819
|
+
"properties": {
|
|
2820
|
+
"connection_id": {
|
|
2821
|
+
"type": "string",
|
|
2822
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2823
|
+
},
|
|
2824
|
+
"shipment_id": {
|
|
2825
|
+
"type": "string",
|
|
2826
|
+
"description": "The existing shipment whose quoted rates to read"
|
|
2827
|
+
}
|
|
2828
|
+
},
|
|
2829
|
+
"required": [
|
|
2830
|
+
"connection_id",
|
|
2831
|
+
"shipment_id"
|
|
2832
|
+
]
|
|
2833
|
+
},
|
|
2834
|
+
"example": {
|
|
2835
|
+
"connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
|
|
2836
|
+
"shipment_id": "se-1001"
|
|
2837
|
+
}
|
|
2838
|
+
},
|
|
2839
|
+
{
|
|
2840
|
+
"name": "shipping_shipments",
|
|
2841
|
+
"method": "POST",
|
|
2842
|
+
"path": "/v1/tools/shipping/shipments",
|
|
2843
|
+
"paid": true,
|
|
2844
|
+
"readOnly": true,
|
|
2845
|
+
"title": "Shipping shipments",
|
|
2846
|
+
"description": "Shipments read from the customer's connected shipping system. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2847
|
+
"inputSchema": {
|
|
2848
|
+
"type": "object",
|
|
2849
|
+
"properties": {
|
|
2850
|
+
"connection_id": {
|
|
2851
|
+
"type": "string",
|
|
2852
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2853
|
+
},
|
|
2854
|
+
"limit": {
|
|
2855
|
+
"type": "integer",
|
|
2856
|
+
"description": "Shipments per page, 1 to 100 (default 25)"
|
|
2857
|
+
},
|
|
2858
|
+
"cursor": {
|
|
2859
|
+
"type": "string",
|
|
2860
|
+
"description": "The next_cursor of the previous page"
|
|
2861
|
+
},
|
|
2862
|
+
"from": {
|
|
2863
|
+
"type": "string",
|
|
2864
|
+
"description": "Shipments created on or after this day (YYYY-MM-DD)"
|
|
2865
|
+
},
|
|
2866
|
+
"to": {
|
|
2867
|
+
"type": "string",
|
|
2868
|
+
"description": "Shipments created on or before this day (YYYY-MM-DD)"
|
|
2869
|
+
},
|
|
2870
|
+
"status": {
|
|
2871
|
+
"type": "string",
|
|
2872
|
+
"description": "Only shipments in this status, as the system names it (for example label_purchased)"
|
|
2873
|
+
}
|
|
2874
|
+
},
|
|
2875
|
+
"required": [
|
|
2876
|
+
"connection_id"
|
|
2877
|
+
]
|
|
2878
|
+
},
|
|
2879
|
+
"example": {
|
|
2880
|
+
"connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
|
|
2881
|
+
"limit": 25,
|
|
2882
|
+
"from": "2026-10-01",
|
|
2883
|
+
"to": "2026-10-15"
|
|
2884
|
+
}
|
|
2885
|
+
},
|
|
2886
|
+
{
|
|
2887
|
+
"name": "shipping_tracking",
|
|
2888
|
+
"method": "POST",
|
|
2889
|
+
"path": "/v1/tools/shipping/tracking",
|
|
2890
|
+
"paid": true,
|
|
2891
|
+
"readOnly": true,
|
|
2892
|
+
"title": "Shipping tracking",
|
|
2893
|
+
"description": "Tracking of one shipment read from the customer's connected shipping system. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2894
|
+
"inputSchema": {
|
|
2895
|
+
"type": "object",
|
|
2896
|
+
"properties": {
|
|
2897
|
+
"connection_id": {
|
|
2898
|
+
"type": "string",
|
|
2899
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2900
|
+
},
|
|
2901
|
+
"shipment_id": {
|
|
2902
|
+
"type": "string",
|
|
2903
|
+
"description": "The shipment to track, by the system's shipment id"
|
|
2904
|
+
},
|
|
2905
|
+
"carrier": {
|
|
2906
|
+
"type": "string",
|
|
2907
|
+
"description": "The carrier code, with tracking_number, to track without a shipment id"
|
|
2908
|
+
},
|
|
2909
|
+
"tracking_number": {
|
|
2910
|
+
"type": "string",
|
|
2911
|
+
"description": "The tracking number, with carrier"
|
|
2912
|
+
}
|
|
2913
|
+
},
|
|
2914
|
+
"required": [
|
|
2915
|
+
"connection_id"
|
|
2916
|
+
]
|
|
2917
|
+
},
|
|
2918
|
+
"example": {
|
|
2919
|
+
"connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
|
|
2920
|
+
"shipment_id": "se-1001"
|
|
2921
|
+
}
|
|
2922
|
+
},
|
|
2923
|
+
{
|
|
2924
|
+
"name": "tax_calculate",
|
|
2925
|
+
"method": "POST",
|
|
2926
|
+
"path": "/v1/tools/tax/calculate",
|
|
2927
|
+
"paid": true,
|
|
2928
|
+
"readOnly": true,
|
|
2929
|
+
"title": "Tax calculation",
|
|
2930
|
+
"description": "Tax calculation for an order, read from the customer's connected tax system. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
2931
|
+
"inputSchema": {
|
|
2932
|
+
"type": "object",
|
|
2933
|
+
"properties": {
|
|
2934
|
+
"connection_id": {
|
|
2935
|
+
"type": "string",
|
|
2936
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
2937
|
+
},
|
|
2938
|
+
"from": {
|
|
2939
|
+
"type": "object",
|
|
2940
|
+
"properties": {
|
|
2941
|
+
"country": {
|
|
2942
|
+
"type": "string",
|
|
2943
|
+
"description": "Two-letter country code"
|
|
2944
|
+
},
|
|
2945
|
+
"zip": {
|
|
2946
|
+
"type": "string",
|
|
2947
|
+
"description": "Postal code"
|
|
2948
|
+
},
|
|
2949
|
+
"state": {
|
|
2950
|
+
"type": "string",
|
|
2951
|
+
"description": "State or province code (required for US and CA)"
|
|
2952
|
+
},
|
|
2953
|
+
"city": {
|
|
2954
|
+
"type": "string"
|
|
2955
|
+
},
|
|
2956
|
+
"street": {
|
|
2957
|
+
"type": "string"
|
|
2958
|
+
}
|
|
2959
|
+
},
|
|
2960
|
+
"required": [
|
|
2961
|
+
"country",
|
|
2962
|
+
"zip"
|
|
2963
|
+
],
|
|
2964
|
+
"description": "Where the order ships from"
|
|
2965
|
+
},
|
|
2966
|
+
"to": {
|
|
2967
|
+
"type": "object",
|
|
2968
|
+
"properties": {
|
|
2969
|
+
"country": {
|
|
2970
|
+
"type": "string",
|
|
2971
|
+
"description": "Two-letter country code"
|
|
2972
|
+
},
|
|
2973
|
+
"zip": {
|
|
2974
|
+
"type": "string",
|
|
2975
|
+
"description": "Postal code"
|
|
2976
|
+
},
|
|
2977
|
+
"state": {
|
|
2978
|
+
"type": "string",
|
|
2979
|
+
"description": "State or province code (required for US and CA)"
|
|
2980
|
+
},
|
|
2981
|
+
"city": {
|
|
2982
|
+
"type": "string"
|
|
2983
|
+
},
|
|
2984
|
+
"street": {
|
|
2985
|
+
"type": "string"
|
|
2986
|
+
}
|
|
2987
|
+
},
|
|
2988
|
+
"required": [
|
|
2989
|
+
"country",
|
|
2990
|
+
"zip"
|
|
2991
|
+
],
|
|
2992
|
+
"description": "Where the order ships to"
|
|
2993
|
+
},
|
|
2994
|
+
"line_items": {
|
|
2995
|
+
"type": "array",
|
|
2996
|
+
"description": "The goods on the order (1 to 100 lines)",
|
|
2997
|
+
"items": {
|
|
2998
|
+
"type": "object",
|
|
2999
|
+
"properties": {
|
|
3000
|
+
"id": {
|
|
3001
|
+
"type": "string",
|
|
3002
|
+
"description": "Your reference for the line; returned in the breakdown"
|
|
3003
|
+
},
|
|
3004
|
+
"quantity": {
|
|
3005
|
+
"type": "integer",
|
|
3006
|
+
"description": "Units on the line (default 1)"
|
|
3007
|
+
},
|
|
3008
|
+
"unit_price": {
|
|
3009
|
+
"type": "number",
|
|
3010
|
+
"description": "Price of one unit, before tax"
|
|
3011
|
+
},
|
|
3012
|
+
"discount": {
|
|
3013
|
+
"type": "number",
|
|
3014
|
+
"description": "Discount on the whole line, before tax"
|
|
3015
|
+
},
|
|
3016
|
+
"product_tax_code": {
|
|
3017
|
+
"type": "string",
|
|
3018
|
+
"description": "The system's product tax category code, when the goods are not taxed at the general rate"
|
|
3019
|
+
}
|
|
3020
|
+
},
|
|
3021
|
+
"required": [
|
|
3022
|
+
"unit_price"
|
|
3023
|
+
]
|
|
3024
|
+
}
|
|
3025
|
+
},
|
|
3026
|
+
"shipping": {
|
|
3027
|
+
"type": "number",
|
|
3028
|
+
"description": "Shipping charged on the order, before tax (default 0)"
|
|
3029
|
+
}
|
|
3030
|
+
},
|
|
3031
|
+
"required": [
|
|
3032
|
+
"connection_id",
|
|
3033
|
+
"from",
|
|
3034
|
+
"to",
|
|
3035
|
+
"line_items"
|
|
3036
|
+
]
|
|
3037
|
+
},
|
|
3038
|
+
"example": {
|
|
3039
|
+
"connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
|
|
3040
|
+
"from": {
|
|
3041
|
+
"country": "US",
|
|
3042
|
+
"zip": "92093",
|
|
3043
|
+
"state": "CA"
|
|
3044
|
+
},
|
|
3045
|
+
"to": {
|
|
3046
|
+
"country": "US",
|
|
3047
|
+
"zip": "90002",
|
|
3048
|
+
"state": "CA",
|
|
3049
|
+
"city": "Los Angeles"
|
|
3050
|
+
},
|
|
3051
|
+
"line_items": [
|
|
3052
|
+
{
|
|
3053
|
+
"id": "1",
|
|
3054
|
+
"quantity": 1,
|
|
3055
|
+
"unit_price": 15,
|
|
3056
|
+
"product_tax_code": "20010"
|
|
3057
|
+
}
|
|
3058
|
+
],
|
|
3059
|
+
"shipping": 1.5
|
|
3060
|
+
}
|
|
3061
|
+
},
|
|
3062
|
+
{
|
|
3063
|
+
"name": "tax_rates",
|
|
3064
|
+
"method": "POST",
|
|
3065
|
+
"path": "/v1/tools/tax/rates",
|
|
3066
|
+
"paid": true,
|
|
3067
|
+
"readOnly": true,
|
|
3068
|
+
"title": "Tax rates",
|
|
3069
|
+
"description": "Tax rate for a location, read from the customer's connected tax system. Paid per read. Call oneshot_connections_list first and pick the connection_id by system and account_label.",
|
|
3070
|
+
"inputSchema": {
|
|
3071
|
+
"type": "object",
|
|
3072
|
+
"properties": {
|
|
3073
|
+
"connection_id": {
|
|
3074
|
+
"type": "string",
|
|
3075
|
+
"description": "The connection to read. An agent can have several connections to the same system: list your connections first (`GET /v1/connections`) and pick by `system` and `account_label`."
|
|
3076
|
+
},
|
|
3077
|
+
"country": {
|
|
3078
|
+
"type": "string",
|
|
3079
|
+
"description": "Two-letter country code; US when omitted"
|
|
3080
|
+
},
|
|
3081
|
+
"zip": {
|
|
3082
|
+
"type": "string",
|
|
3083
|
+
"description": "Postal code of the location"
|
|
3084
|
+
},
|
|
3085
|
+
"state": {
|
|
3086
|
+
"type": "string",
|
|
3087
|
+
"description": "State or province code, for a more precise rate"
|
|
3088
|
+
},
|
|
3089
|
+
"city": {
|
|
3090
|
+
"type": "string",
|
|
3091
|
+
"description": "City, for a more precise rate"
|
|
3092
|
+
},
|
|
3093
|
+
"street": {
|
|
3094
|
+
"type": "string",
|
|
3095
|
+
"description": "Street address, for a rooftop-precise rate where the system offers one"
|
|
3096
|
+
}
|
|
3097
|
+
},
|
|
3098
|
+
"required": [
|
|
3099
|
+
"connection_id",
|
|
3100
|
+
"zip"
|
|
3101
|
+
]
|
|
3102
|
+
},
|
|
3103
|
+
"example": {
|
|
3104
|
+
"connection_id": "6f1c2d3e-4b5a-4c6d-8e7f-9a0b1c2d3e4f",
|
|
3105
|
+
"country": "US",
|
|
3106
|
+
"zip": "90210",
|
|
3107
|
+
"state": "CA",
|
|
3108
|
+
"city": "Beverly Hills"
|
|
3109
|
+
}
|
|
3110
|
+
},
|
|
2280
3111
|
{
|
|
2281
3112
|
"name": "physical_mail_validate_address",
|
|
2282
3113
|
"method": "POST",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneshot-agent/mcp-server",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for OneShot -
|
|
3
|
+
"version": "0.46.0",
|
|
4
|
+
"description": "MCP server for OneShot - 173 tools for AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@coinbase/cdp-sdk": "1.45.0",
|
|
28
28
|
"@modelcontextprotocol/sdk": "1.27.1",
|
|
29
|
-
"@oneshot-agent/sdk": "^0.
|
|
29
|
+
"@oneshot-agent/sdk": "^0.58.0",
|
|
30
30
|
"zod": "3.25.76"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|