@oneshot-agent/mcp-server 0.9.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
@@ -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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneshot-agent/mcp-server",
3
- "version": "0.9.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",
@@ -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.12.0",
28
+ "@oneshot-agent/sdk": "workspace:*",
29
29
  "zod": "3.25.76"
30
30
  },
31
31
  "devDependencies": {