@oneshot-agent/mcp-server 0.8.0 → 0.10.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.
@@ -1,4 +1,12 @@
1
1
  import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
2
  import { OneShot } from "@oneshot-agent/sdk";
3
3
  export declare const browserTool: Tool;
4
+ export declare const browserCreateProfileTool: Tool;
5
+ export declare const browserListProfilesTool: Tool;
6
+ export declare const browserDeleteProfileTool: Tool;
4
7
  export declare function handleBrowser(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").BrowserResult>;
8
+ export declare function handleBrowserCreateProfile(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").BrowserProfile>;
9
+ export declare function handleBrowserListProfiles(agent: OneShot, _args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").BrowserProfile[]>;
10
+ export declare function handleBrowserDeleteProfile(agent: OneShot, args: Record<string, unknown>): Promise<{
11
+ success: boolean;
12
+ }>;
@@ -21,6 +21,15 @@ export const browserTool = {
21
21
  items: { type: "string" },
22
22
  description: "Restrict browsing to these domains (optional)",
23
23
  },
24
+ profile_id: {
25
+ type: "string",
26
+ description: "Persistent browser profile ID for reusing cookies/localStorage across sessions (optional)",
27
+ },
28
+ secrets: {
29
+ type: "object",
30
+ additionalProperties: { type: "string" },
31
+ description: "Domain-scoped credentials for auto-login, e.g. { \"github.com\": \"user:token\" } (optional)",
32
+ },
24
33
  max_steps: {
25
34
  type: "number",
26
35
  description: "Maximum browser steps (1-100, default: 50)",
@@ -29,12 +38,60 @@ export const browserTool = {
29
38
  required: ["task"],
30
39
  },
31
40
  };
41
+ export const browserCreateProfileTool = {
42
+ name: "oneshot_browser_create_profile",
43
+ description: "Create a persistent browser profile that stores cookies, localStorage, and saved passwords across sessions. Use with browser tasks via profile_id to maintain logged-in state.",
44
+ inputSchema: {
45
+ type: "object",
46
+ properties: {
47
+ name: {
48
+ type: "string",
49
+ description: "Human-readable name for the profile (e.g. 'linkedin-session', 'work-account')",
50
+ },
51
+ },
52
+ required: ["name"],
53
+ },
54
+ };
55
+ export const browserListProfilesTool = {
56
+ name: "oneshot_browser_list_profiles",
57
+ description: "List all persistent browser profiles.",
58
+ inputSchema: {
59
+ type: "object",
60
+ properties: {},
61
+ },
62
+ };
63
+ export const browserDeleteProfileTool = {
64
+ name: "oneshot_browser_delete_profile",
65
+ description: "Delete a persistent browser profile and its stored state.",
66
+ inputSchema: {
67
+ type: "object",
68
+ properties: {
69
+ profile_id: {
70
+ type: "string",
71
+ description: "The ID of the profile to delete",
72
+ },
73
+ },
74
+ required: ["profile_id"],
75
+ },
76
+ };
32
77
  export async function handleBrowser(agent, args) {
33
78
  return agent.browser({
34
79
  task: args.task,
35
80
  output_schema: args.output_schema,
36
81
  start_url: args.start_url,
37
82
  allowed_domains: args.allowed_domains,
83
+ profile_id: args.profile_id,
84
+ secrets: args.secrets,
38
85
  max_steps: args.max_steps,
39
86
  });
40
87
  }
88
+ export async function handleBrowserCreateProfile(agent, args) {
89
+ return agent.createBrowserProfile(args.name);
90
+ }
91
+ export async function handleBrowserListProfiles(agent, _args) {
92
+ return agent.listBrowserProfiles();
93
+ }
94
+ export async function handleBrowserDeleteProfile(agent, args) {
95
+ await agent.deleteBrowserProfile(args.profile_id);
96
+ return { success: true };
97
+ }
@@ -10,7 +10,7 @@ import { smsInboxListTool, smsInboxGetTool, handleSmsInboxList, handleSmsInboxGe
10
10
  import { notificationsTool, markReadTool, handleNotifications, handleMarkRead } from "./notifications.js";
11
11
  import { getBalanceTool, handleGetBalance } from "./wallet.js";
12
12
  import { buildTool, updateBuildTool, handleBuild, handleUpdateBuild } from "./build.js";
13
- import { browserTool, handleBrowser } from "./browser.js";
13
+ import { browserTool, browserCreateProfileTool, browserListProfilesTool, browserDeleteProfileTool, handleBrowser, handleBrowserCreateProfile, handleBrowserListProfiles, handleBrowserDeleteProfile } from "./browser.js";
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";
@@ -46,6 +46,9 @@ export const tools = [
46
46
  updateBuildTool,
47
47
  // Browser
48
48
  browserTool,
49
+ browserCreateProfileTool,
50
+ browserListProfilesTool,
51
+ browserDeleteProfileTool,
49
52
  // Web Read
50
53
  webReadTool,
51
54
  // Account
@@ -85,6 +88,9 @@ const handlers = {
85
88
  "oneshot_update_build": handleUpdateBuild,
86
89
  // Browser
87
90
  "oneshot_browser": handleBrowser,
91
+ "oneshot_browser_create_profile": handleBrowserCreateProfile,
92
+ "oneshot_browser_list_profiles": handleBrowserListProfiles,
93
+ "oneshot_browser_delete_profile": handleBrowserDeleteProfile,
88
94
  // Web Read
89
95
  "oneshot_web_read": handleWebRead,
90
96
  // Account
@@ -6,9 +6,9 @@ export declare const articleSearchTool: Tool;
6
6
  export declare const personNewsfeedTool: Tool;
7
7
  export declare const personInterestsTool: Tool;
8
8
  export declare const personInteractionsTool: Tool;
9
- export declare function handleDeepResearchPerson(agent: OneShot, args: Record<string, unknown>): Promise<any>;
10
- export declare function handleSocialProfiles(agent: OneShot, args: Record<string, unknown>): Promise<any>;
11
- export declare function handleArticleSearch(agent: OneShot, args: Record<string, unknown>): Promise<any>;
12
- export declare function handlePersonNewsfeed(agent: OneShot, args: Record<string, unknown>): Promise<any>;
13
- export declare function handlePersonInterests(agent: OneShot, args: Record<string, unknown>): Promise<any>;
14
- export declare function handlePersonInteractions(agent: OneShot, args: Record<string, unknown>): Promise<any>;
9
+ export declare function handleDeepResearchPerson(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").DeepResearchPersonResult>;
10
+ export declare function handleSocialProfiles(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").SocialProfilesResult>;
11
+ export declare function handleArticleSearch(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").ArticleSearchResult>;
12
+ export declare function handlePersonNewsfeed(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").PersonNewsfeedResult>;
13
+ export declare function handlePersonInterests(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").PersonInterestsResult>;
14
+ export declare function handlePersonInteractions(agent: OneShot, args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").PersonInteractionsResult>;
@@ -19,6 +19,11 @@ export const peopleSearchTool = {
19
19
  items: { type: "string" },
20
20
  description: "Company names to filter by",
21
21
  },
22
+ company_domains: {
23
+ type: "array",
24
+ items: { type: "string" },
25
+ description: "Company domains to filter by (e.g., ['stripe.com', 'nike.com']). Preferred over company names for providers that require domains.",
26
+ },
22
27
  location: {
23
28
  type: "array",
24
29
  items: { type: "string" },
@@ -55,6 +60,7 @@ export async function handlePeopleSearch(agent, args) {
55
60
  job_titles: args.job_titles,
56
61
  keywords: args.keywords,
57
62
  companies: args.companies,
63
+ company_domains: args.company_domains,
58
64
  location: args.location,
59
65
  skills: args.skills,
60
66
  seniority: args.seniority,
@@ -30,7 +30,5 @@ export async function handleResearch(agent, args) {
30
30
  return agent.research({
31
31
  topic: args.topic,
32
32
  depth: args.depth,
33
- max_sources: args.max_sources,
34
- output_format: args.output_format,
35
33
  });
36
34
  }
@@ -1,8 +1,4 @@
1
1
  import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
2
  import { OneShot } from "@oneshot-agent/sdk";
3
3
  export declare const getBalanceTool: Tool;
4
- export declare function handleGetBalance(agent: OneShot, _args: Record<string, unknown>): Promise<{
5
- balance: string;
6
- currency: string;
7
- address: string;
8
- }>;
4
+ export declare function handleGetBalance(agent: OneShot, _args: Record<string, unknown>): Promise<import("@oneshot-agent/sdk").UnifiedBalance>;
@@ -1,16 +1,12 @@
1
1
  export const getBalanceTool = {
2
2
  name: "oneshot_get_balance",
3
- description: "Get the agent's USDC balance. Free. Returns balance in human-readable format.",
3
+ description: "Get the agent's USDC balance (on-chain and credits). Free. Returns on-chain balance, credits balance, currency, address, and chain ID.",
4
4
  inputSchema: {
5
5
  type: "object",
6
6
  properties: {},
7
7
  },
8
8
  };
9
9
  export async function handleGetBalance(agent, _args) {
10
- const balance = await agent.getBalance(agent.usdcAddress);
11
- return {
12
- balance,
13
- currency: "USDC",
14
- address: agent.address,
15
- };
10
+ const balance = await agent.getUnifiedBalance();
11
+ return balance;
16
12
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneshot-agent/mcp-server",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "description": "MCP server for OneShot - commercial actions for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",