@oneshot-agent/mcp-server 0.11.1 → 0.13.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 +29 -0
- package/dist/index.js +1 -1
- package/dist/tools/analytics.d.ts +10 -0
- package/dist/tools/analytics.js +74 -0
- package/dist/tools/company.d.ts +6 -0
- package/dist/tools/company.js +54 -0
- package/dist/tools/compute.d.ts +21 -0
- package/dist/tools/compute.js +115 -0
- package/dist/tools/domains.d.ts +8 -0
- package/dist/tools/domains.js +36 -0
- package/dist/tools/index.js +38 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -111,6 +111,8 @@ Get CDP credentials at [Coinbase Agentic Wallet](https://docs.cdp.coinbase.com/a
|
|
|
111
111
|
| `oneshot_enrich_profile` | Enrich person profile from LinkedIn/email |
|
|
112
112
|
| `oneshot_find_email` | Find someone's email address |
|
|
113
113
|
| `oneshot_verify_email` | Verify email deliverability |
|
|
114
|
+
| `oneshot_company_search` | Search for companies by industry, size, location, etc. |
|
|
115
|
+
| `oneshot_enrich_company` | Enrich a company from domain, name, LinkedIn, or ticker |
|
|
114
116
|
|
|
115
117
|
### Person Intelligence
|
|
116
118
|
|
|
@@ -145,6 +147,33 @@ Get CDP credentials at [Coinbase Agentic Wallet](https://docs.cdp.coinbase.com/a
|
|
|
145
147
|
| `oneshot_build` | Build and deploy production websites |
|
|
146
148
|
| `oneshot_update_build` | Update an existing website |
|
|
147
149
|
|
|
150
|
+
### Compute Orchestration
|
|
151
|
+
|
|
152
|
+
| Tool | Description |
|
|
153
|
+
|------|-------------|
|
|
154
|
+
| `oneshot_compute` | Create an autonomous goal — objective + budget, the orchestrator plans and executes |
|
|
155
|
+
| `oneshot_compute_status` | Get a compute goal's status and budget |
|
|
156
|
+
| `oneshot_compute_tasks` | List tasks planned/executed under a goal |
|
|
157
|
+
| `oneshot_compute_cancel` | Cancel a goal and refund remaining budget |
|
|
158
|
+
| `oneshot_compute_respond` | Respond to a human-in-the-loop task |
|
|
159
|
+
|
|
160
|
+
### Domains
|
|
161
|
+
|
|
162
|
+
| Tool | Description |
|
|
163
|
+
|------|-------------|
|
|
164
|
+
| `oneshot_list_domains` | List sending domains with warmup/limits |
|
|
165
|
+
| `oneshot_pause_domain` | Pause a sending domain |
|
|
166
|
+
| `oneshot_resume_domain` | Resume a paused sending domain |
|
|
167
|
+
|
|
168
|
+
### Analytics
|
|
169
|
+
|
|
170
|
+
| Tool | Description |
|
|
171
|
+
|------|-------------|
|
|
172
|
+
| `oneshot_spend_breakdown` | Spend by tool/category over a period |
|
|
173
|
+
| `oneshot_rocs` | Return on Compute Spend analytics |
|
|
174
|
+
| `oneshot_receipts_list` | List spend receipts |
|
|
175
|
+
| `oneshot_tag_receipt_value` | Tag a receipt with the value it generated |
|
|
176
|
+
|
|
148
177
|
### Account
|
|
149
178
|
|
|
150
179
|
| Tool | Description |
|
package/dist/index.js
CHANGED
|
@@ -26,7 +26,7 @@ async function main() {
|
|
|
26
26
|
// Create MCP server
|
|
27
27
|
const server = new Server({
|
|
28
28
|
name: "oneshot-mcp",
|
|
29
|
-
version: "0.
|
|
29
|
+
version: "0.13.0", // keep in sync with package.json; guarded by version.test.ts
|
|
30
30
|
}, {
|
|
31
31
|
capabilities: {
|
|
32
32
|
tools: {},
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { OneShot } from "@oneshot-agent/sdk";
|
|
3
|
+
export declare const spendBreakdownTool: Tool;
|
|
4
|
+
export declare const rocsTool: Tool;
|
|
5
|
+
export declare const receiptsListTool: Tool;
|
|
6
|
+
export declare const tagReceiptValueTool: Tool;
|
|
7
|
+
export declare function handleSpendBreakdown(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").SpendBreakdown>;
|
|
8
|
+
export declare function handleRocs(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").RoCSResult>;
|
|
9
|
+
export declare function handleReceiptsList(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").ReceiptsListResult>;
|
|
10
|
+
export declare function handleTagReceiptValue(agent: OneShot, args: Record<string, unknown>): Promise<void>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export const spendBreakdownTool = {
|
|
2
|
+
name: "oneshot_spend_breakdown",
|
|
3
|
+
description: "Get a breakdown of the agent's spend by tool/category over a period. Free.",
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {
|
|
7
|
+
period: { type: "number", description: "Lookback window in days" },
|
|
8
|
+
},
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
export const rocsTool = {
|
|
12
|
+
name: "oneshot_rocs",
|
|
13
|
+
description: "Get Return on Compute Spend (RoCS) analytics for the agent over a period. Free.",
|
|
14
|
+
inputSchema: {
|
|
15
|
+
type: "object",
|
|
16
|
+
properties: {
|
|
17
|
+
period: { type: "number", description: "Lookback window in days" },
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export const receiptsListTool = {
|
|
22
|
+
name: "oneshot_receipts_list",
|
|
23
|
+
description: "List the agent's spend receipts, optionally filtered by period/category and paginated. Free.",
|
|
24
|
+
inputSchema: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
period: { type: "number", description: "Lookback window in days" },
|
|
28
|
+
category: { type: "string", description: "Filter by tool category" },
|
|
29
|
+
limit: { type: "number", description: "Max receipts to return (1-100, default 50)" },
|
|
30
|
+
offset: { type: "number", description: "Pagination offset" },
|
|
31
|
+
since: { type: "string", description: "Lower bound on created_at (ISO 8601). Page back to older receipts." },
|
|
32
|
+
until: { type: "string", description: "Upper bound on created_at (ISO 8601)." },
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
export const tagReceiptValueTool = {
|
|
37
|
+
name: "oneshot_tag_receipt_value",
|
|
38
|
+
description: "Tag a receipt with the business value it generated (revenue, lead, saved-time, etc.) to feed RoCS. " +
|
|
39
|
+
"Identify the receipt by its receipt_id (rcpt_…) or by the request_id returned from the original tool call. Free.",
|
|
40
|
+
inputSchema: {
|
|
41
|
+
type: "object",
|
|
42
|
+
properties: {
|
|
43
|
+
receipt_id: { type: "string", description: "Receipt id (rcpt_…) to tag. Provide this or request_id." },
|
|
44
|
+
request_id: { type: "string", description: "request_id/job_id from the original tool call. Provide this or receipt_id." },
|
|
45
|
+
type: { type: "string", description: "Value type (e.g. 'revenue', 'lead', 'saved_time')" },
|
|
46
|
+
amount: { type: "number", description: "Value amount (e.g. USD)" },
|
|
47
|
+
label: { type: "string", description: "Optional human label for the value" },
|
|
48
|
+
},
|
|
49
|
+
required: ["type"],
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
export async function handleSpendBreakdown(agent, args) {
|
|
53
|
+
return agent.spendBreakdown({ period: args.period });
|
|
54
|
+
}
|
|
55
|
+
export async function handleRocs(agent, args) {
|
|
56
|
+
return agent.rocs({ period: args.period });
|
|
57
|
+
}
|
|
58
|
+
export async function handleReceiptsList(agent, args) {
|
|
59
|
+
return agent.receiptsList({
|
|
60
|
+
period: args.period,
|
|
61
|
+
category: args.category,
|
|
62
|
+
limit: args.limit,
|
|
63
|
+
offset: args.offset,
|
|
64
|
+
since: args.since,
|
|
65
|
+
until: args.until,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
export async function handleTagReceiptValue(agent, args) {
|
|
69
|
+
return agent.tagReceiptValue({ receiptId: args.receipt_id, requestId: args.request_id }, {
|
|
70
|
+
type: args.type,
|
|
71
|
+
amount: args.amount,
|
|
72
|
+
label: args.label,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { OneShot } from "@oneshot-agent/sdk";
|
|
3
|
+
export declare const companySearchTool: Tool;
|
|
4
|
+
export declare const enrichCompanyTool: Tool;
|
|
5
|
+
export declare function handleCompanySearch(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").CompanySearchResult>;
|
|
6
|
+
export declare function handleEnrichCompany(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").EnrichCompanyResult>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export const companySearchTool = {
|
|
2
|
+
name: "oneshot_company_search",
|
|
3
|
+
description: "Search for companies by name, domain, industry, location, size, funding stage, or tags. Paid tool.",
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {
|
|
7
|
+
name: { type: "string", description: "Company name to search for" },
|
|
8
|
+
domain: { type: "string", description: "Company domain (e.g. example.com)" },
|
|
9
|
+
industry: { type: "array", items: { type: "string" }, description: "Industries to filter by" },
|
|
10
|
+
location: { type: "array", items: { type: "string" }, description: "Locations to filter by" },
|
|
11
|
+
size: { type: "string", description: "Company size band (e.g. '11-50')" },
|
|
12
|
+
min_employee_count: { type: "number", description: "Minimum employee count" },
|
|
13
|
+
max_employee_count: { type: "number", description: "Maximum employee count" },
|
|
14
|
+
funding_stage: { type: "string", description: "Funding stage (e.g. 'series_a')" },
|
|
15
|
+
tags: { type: "array", items: { type: "string" }, description: "Tags to filter by" },
|
|
16
|
+
limit: { type: "number", description: "Max results (default 10, max 100)" },
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
export const enrichCompanyTool = {
|
|
21
|
+
name: "oneshot_enrich_company",
|
|
22
|
+
description: "Enrich a company from its domain, name, LinkedIn URL, or stock ticker. At least one identifier is required. Paid tool.",
|
|
23
|
+
inputSchema: {
|
|
24
|
+
type: "object",
|
|
25
|
+
properties: {
|
|
26
|
+
domain: { type: "string", description: "Company domain (e.g. example.com)" },
|
|
27
|
+
name: { type: "string", description: "Company name" },
|
|
28
|
+
linkedin_url: { type: "string", description: "Company LinkedIn URL" },
|
|
29
|
+
ticker: { type: "string", description: "Stock ticker symbol" },
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
export async function handleCompanySearch(agent, args) {
|
|
34
|
+
return agent.companySearch({
|
|
35
|
+
name: args.name,
|
|
36
|
+
domain: args.domain,
|
|
37
|
+
industry: args.industry,
|
|
38
|
+
location: args.location,
|
|
39
|
+
size: args.size,
|
|
40
|
+
min_employee_count: args.min_employee_count,
|
|
41
|
+
max_employee_count: args.max_employee_count,
|
|
42
|
+
funding_stage: args.funding_stage,
|
|
43
|
+
tags: args.tags,
|
|
44
|
+
limit: args.limit,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
export async function handleEnrichCompany(agent, args) {
|
|
48
|
+
return agent.enrichCompany({
|
|
49
|
+
domain: args.domain,
|
|
50
|
+
name: args.name,
|
|
51
|
+
linkedin_url: args.linkedin_url,
|
|
52
|
+
ticker: args.ticker,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { OneShot } from "@oneshot-agent/sdk";
|
|
3
|
+
export declare const computeTool: Tool;
|
|
4
|
+
export declare const computeStatusTool: Tool;
|
|
5
|
+
export declare const computeTasksTool: Tool;
|
|
6
|
+
export declare const computeCancelTool: Tool;
|
|
7
|
+
export declare const computeRespondTool: Tool;
|
|
8
|
+
export declare function handleCompute(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").ComputeGoalResult>;
|
|
9
|
+
export declare function handleComputeStatus(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").ComputeGoalStatus>;
|
|
10
|
+
export declare function handleComputeTasks(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").ComputeTask[]>;
|
|
11
|
+
export declare function handleComputeCancel(agent: OneShot, args: Record<string, unknown>): Promise<{
|
|
12
|
+
goal_id: string;
|
|
13
|
+
status: string;
|
|
14
|
+
remaining_budget: string;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function handleComputeRespond(agent: OneShot, args: Record<string, unknown>): Promise<{
|
|
17
|
+
task_id: string;
|
|
18
|
+
goal_id: string;
|
|
19
|
+
task_status: string;
|
|
20
|
+
orchestrator_action: string;
|
|
21
|
+
}>;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
export const computeTool = {
|
|
2
|
+
name: "oneshot_compute",
|
|
3
|
+
description: "Create an autonomous compute goal: hand the orchestrator a natural-language objective and a budget, and it plans and executes multi-step work across OneShot tools. Returns a goal id to poll. Paid tool (quote-to-pay against the budget).",
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {
|
|
7
|
+
objective: {
|
|
8
|
+
type: "string",
|
|
9
|
+
description: "Natural-language objective for the orchestrator to accomplish",
|
|
10
|
+
},
|
|
11
|
+
budget_usdc: {
|
|
12
|
+
type: "number",
|
|
13
|
+
description: "Spend ceiling in USDC. Server estimates if omitted.",
|
|
14
|
+
},
|
|
15
|
+
params: {
|
|
16
|
+
type: "object",
|
|
17
|
+
description: "Additional parameters / constraints for the objective",
|
|
18
|
+
additionalProperties: true,
|
|
19
|
+
},
|
|
20
|
+
deadline: {
|
|
21
|
+
type: "string",
|
|
22
|
+
description: "ISO 8601 deadline for completion",
|
|
23
|
+
},
|
|
24
|
+
soul_slug: {
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "Route the goal to a specific Soul agent",
|
|
27
|
+
},
|
|
28
|
+
soul_service_slug: {
|
|
29
|
+
type: "string",
|
|
30
|
+
description: "Route the goal to a specific Soul service",
|
|
31
|
+
},
|
|
32
|
+
schedule: {
|
|
33
|
+
type: "object",
|
|
34
|
+
description: "Make this a recurring goal (cron-style schedule object)",
|
|
35
|
+
additionalProperties: true,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
required: ["objective"],
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
export const computeStatusTool = {
|
|
42
|
+
name: "oneshot_compute_status",
|
|
43
|
+
description: "Get the current status of a compute goal (state, budget remaining, progress). Free.",
|
|
44
|
+
inputSchema: {
|
|
45
|
+
type: "object",
|
|
46
|
+
properties: {
|
|
47
|
+
goal_id: { type: "string", description: "Compute goal id" },
|
|
48
|
+
},
|
|
49
|
+
required: ["goal_id"],
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
export const computeTasksTool = {
|
|
53
|
+
name: "oneshot_compute_tasks",
|
|
54
|
+
description: "List the tasks the orchestrator has planned/executed under a compute goal. Free.",
|
|
55
|
+
inputSchema: {
|
|
56
|
+
type: "object",
|
|
57
|
+
properties: {
|
|
58
|
+
goal_id: { type: "string", description: "Compute goal id" },
|
|
59
|
+
},
|
|
60
|
+
required: ["goal_id"],
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
export const computeCancelTool = {
|
|
64
|
+
name: "oneshot_compute_cancel",
|
|
65
|
+
description: "Cancel a compute goal and refund the remaining budget. Free.",
|
|
66
|
+
inputSchema: {
|
|
67
|
+
type: "object",
|
|
68
|
+
properties: {
|
|
69
|
+
goal_id: { type: "string", description: "Compute goal id" },
|
|
70
|
+
reason: { type: "string", description: "Optional cancellation reason" },
|
|
71
|
+
},
|
|
72
|
+
required: ["goal_id"],
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
export const computeRespondTool = {
|
|
76
|
+
name: "oneshot_compute_respond",
|
|
77
|
+
description: "Respond to a human-in-the-loop task that a compute goal is waiting on (approve/reject or provide input). Free.",
|
|
78
|
+
inputSchema: {
|
|
79
|
+
type: "object",
|
|
80
|
+
properties: {
|
|
81
|
+
goal_id: { type: "string", description: "Compute goal id" },
|
|
82
|
+
task_id: { type: "string", description: "Id of the task awaiting a response" },
|
|
83
|
+
response: { type: "string", description: "Free-text response for the task" },
|
|
84
|
+
approved: { type: "boolean", description: "Approve (true) or reject (false) an approval task" },
|
|
85
|
+
},
|
|
86
|
+
required: ["goal_id", "task_id"],
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
export async function handleCompute(agent, args) {
|
|
90
|
+
return agent.compute({
|
|
91
|
+
objective: args.objective,
|
|
92
|
+
budget_usdc: args.budget_usdc,
|
|
93
|
+
params: args.params,
|
|
94
|
+
deadline: args.deadline,
|
|
95
|
+
soul_slug: args.soul_slug,
|
|
96
|
+
soul_service_slug: args.soul_service_slug,
|
|
97
|
+
schedule: args.schedule,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
export async function handleComputeStatus(agent, args) {
|
|
101
|
+
return agent.getComputeGoal(args.goal_id);
|
|
102
|
+
}
|
|
103
|
+
export async function handleComputeTasks(agent, args) {
|
|
104
|
+
return agent.getComputeTasks(args.goal_id);
|
|
105
|
+
}
|
|
106
|
+
export async function handleComputeCancel(agent, args) {
|
|
107
|
+
return agent.cancelComputeGoal(args.goal_id, args.reason);
|
|
108
|
+
}
|
|
109
|
+
export async function handleComputeRespond(agent, args) {
|
|
110
|
+
return agent.respondToComputeTask(args.goal_id, {
|
|
111
|
+
task_id: args.task_id,
|
|
112
|
+
response: args.response,
|
|
113
|
+
approved: args.approved,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { OneShot } from "@oneshot-agent/sdk";
|
|
3
|
+
export declare const listDomainsTool: Tool;
|
|
4
|
+
export declare const pauseDomainTool: Tool;
|
|
5
|
+
export declare const resumeDomainTool: Tool;
|
|
6
|
+
export declare function handleListDomains(agent: OneShot, _args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").DomainPoolListResult>;
|
|
7
|
+
export declare function handlePauseDomain(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").DomainPoolStatusResult>;
|
|
8
|
+
export declare function handleResumeDomain(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").DomainPoolStatusResult>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export const listDomainsTool = {
|
|
2
|
+
name: "oneshot_list_domains",
|
|
3
|
+
description: "List the agent's sending domains with pool status, warmup score, and daily send limits. Free.",
|
|
4
|
+
inputSchema: { type: "object", properties: {} },
|
|
5
|
+
};
|
|
6
|
+
export const pauseDomainTool = {
|
|
7
|
+
name: "oneshot_pause_domain",
|
|
8
|
+
description: "Pause a sending domain so it stops being used for outbound email. Free.",
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: {
|
|
12
|
+
domain: { type: "string", description: "Domain to pause (e.g. example.com)" },
|
|
13
|
+
},
|
|
14
|
+
required: ["domain"],
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
export const resumeDomainTool = {
|
|
18
|
+
name: "oneshot_resume_domain",
|
|
19
|
+
description: "Resume a previously paused sending domain. Free.",
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: "object",
|
|
22
|
+
properties: {
|
|
23
|
+
domain: { type: "string", description: "Domain to resume (e.g. example.com)" },
|
|
24
|
+
},
|
|
25
|
+
required: ["domain"],
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
export async function handleListDomains(agent, _args) {
|
|
29
|
+
return agent.listDomains();
|
|
30
|
+
}
|
|
31
|
+
export async function handlePauseDomain(agent, args) {
|
|
32
|
+
return agent.pauseDomain(args.domain);
|
|
33
|
+
}
|
|
34
|
+
export async function handleResumeDomain(agent, args) {
|
|
35
|
+
return agent.resumeDomain(args.domain);
|
|
36
|
+
}
|
package/dist/tools/index.js
CHANGED
|
@@ -14,6 +14,10 @@ import { browserTool, browserCreateProfileTool, browserListProfilesTool, browser
|
|
|
14
14
|
import { webSearchTool, handleWebSearch } from "./search.js";
|
|
15
15
|
import { webReadTool, handleWebRead } from "./web-read.js";
|
|
16
16
|
import { deepResearchPersonTool, socialProfilesTool, articleSearchTool, personNewsfeedTool, personInterestsTool, personInteractionsTool, handleDeepResearchPerson, handleSocialProfiles, handleArticleSearch, handlePersonNewsfeed, handlePersonInterests, handlePersonInteractions } from "./nyne.js";
|
|
17
|
+
import { companySearchTool, enrichCompanyTool, handleCompanySearch, handleEnrichCompany } from "./company.js";
|
|
18
|
+
import { computeTool, computeStatusTool, computeTasksTool, computeCancelTool, computeRespondTool, handleCompute, handleComputeStatus, handleComputeTasks, handleComputeCancel, handleComputeRespond } from "./compute.js";
|
|
19
|
+
import { listDomainsTool, pauseDomainTool, resumeDomainTool, handleListDomains, handlePauseDomain, handleResumeDomain } from "./domains.js";
|
|
20
|
+
import { spendBreakdownTool, rocsTool, receiptsListTool, tagReceiptValueTool, handleSpendBreakdown, handleRocs, handleReceiptsList, handleTagReceiptValue } from "./analytics.js";
|
|
17
21
|
// All available tools
|
|
18
22
|
export const tools = [
|
|
19
23
|
// Communication
|
|
@@ -38,9 +42,17 @@ export const tools = [
|
|
|
38
42
|
personNewsfeedTool,
|
|
39
43
|
personInterestsTool,
|
|
40
44
|
personInteractionsTool,
|
|
45
|
+
companySearchTool,
|
|
46
|
+
enrichCompanyTool,
|
|
41
47
|
// Commerce
|
|
42
48
|
commerceSearchTool,
|
|
43
49
|
commerceBuyTool,
|
|
50
|
+
// Compute orchestration
|
|
51
|
+
computeTool,
|
|
52
|
+
computeStatusTool,
|
|
53
|
+
computeTasksTool,
|
|
54
|
+
computeCancelTool,
|
|
55
|
+
computeRespondTool,
|
|
44
56
|
// Build
|
|
45
57
|
buildTool,
|
|
46
58
|
updateBuildTool,
|
|
@@ -51,6 +63,15 @@ export const tools = [
|
|
|
51
63
|
browserDeleteProfileTool,
|
|
52
64
|
// Web Read
|
|
53
65
|
webReadTool,
|
|
66
|
+
// Domains
|
|
67
|
+
listDomainsTool,
|
|
68
|
+
pauseDomainTool,
|
|
69
|
+
resumeDomainTool,
|
|
70
|
+
// Analytics
|
|
71
|
+
spendBreakdownTool,
|
|
72
|
+
rocsTool,
|
|
73
|
+
receiptsListTool,
|
|
74
|
+
tagReceiptValueTool,
|
|
54
75
|
// Account
|
|
55
76
|
notificationsTool,
|
|
56
77
|
markReadTool,
|
|
@@ -80,9 +101,17 @@ const handlers = {
|
|
|
80
101
|
"oneshot_person_newsfeed": handlePersonNewsfeed,
|
|
81
102
|
"oneshot_person_interests": handlePersonInterests,
|
|
82
103
|
"oneshot_person_interactions": handlePersonInteractions,
|
|
104
|
+
"oneshot_company_search": handleCompanySearch,
|
|
105
|
+
"oneshot_enrich_company": handleEnrichCompany,
|
|
83
106
|
// Commerce
|
|
84
107
|
"oneshot_commerce_search": handleCommerceSearch,
|
|
85
108
|
"oneshot_commerce_buy": handleCommerceBuy,
|
|
109
|
+
// Compute orchestration
|
|
110
|
+
"oneshot_compute": handleCompute,
|
|
111
|
+
"oneshot_compute_status": handleComputeStatus,
|
|
112
|
+
"oneshot_compute_tasks": handleComputeTasks,
|
|
113
|
+
"oneshot_compute_cancel": handleComputeCancel,
|
|
114
|
+
"oneshot_compute_respond": handleComputeRespond,
|
|
86
115
|
// Build
|
|
87
116
|
"oneshot_build": handleBuild,
|
|
88
117
|
"oneshot_update_build": handleUpdateBuild,
|
|
@@ -93,6 +122,15 @@ const handlers = {
|
|
|
93
122
|
"oneshot_browser_delete_profile": handleBrowserDeleteProfile,
|
|
94
123
|
// Web Read
|
|
95
124
|
"oneshot_web_read": handleWebRead,
|
|
125
|
+
// Domains
|
|
126
|
+
"oneshot_list_domains": handleListDomains,
|
|
127
|
+
"oneshot_pause_domain": handlePauseDomain,
|
|
128
|
+
"oneshot_resume_domain": handleResumeDomain,
|
|
129
|
+
// Analytics
|
|
130
|
+
"oneshot_spend_breakdown": handleSpendBreakdown,
|
|
131
|
+
"oneshot_rocs": handleRocs,
|
|
132
|
+
"oneshot_receipts_list": handleReceiptsList,
|
|
133
|
+
"oneshot_tag_receipt_value": handleTagReceiptValue,
|
|
96
134
|
// Account
|
|
97
135
|
"oneshot_notifications": handleNotifications,
|
|
98
136
|
"oneshot_mark_notification_read": handleMarkRead,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneshot-agent/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "MCP server for OneShot - commercial actions for AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@coinbase/cdp-sdk": "1.45.0",
|
|
27
27
|
"@modelcontextprotocol/sdk": "1.27.1",
|
|
28
|
-
"@oneshot-agent/sdk": "^0.
|
|
28
|
+
"@oneshot-agent/sdk": "^0.21.0",
|
|
29
29
|
"zod": "3.25.76"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|