@sellable/mcp 0.1.34 → 0.1.36

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/dist/server.js CHANGED
@@ -481,22 +481,19 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
481
481
  }
482
482
  });
483
483
  // List available prompts (skills)
484
+ //
485
+ // Public slash commands take NO arguments. The `offset/limit` chunked-read
486
+ // pattern was leaking into this surface from the internal
487
+ // `get_subskill_prompt` tool — Claude Code's UI treats any declared
488
+ // arguments as gating input and prevents the user from invoking the slash
489
+ // command. Returning an empty arguments list keeps the slash command
490
+ // directly invokable. Internal chunked reads stay on the
491
+ // `get_subskill_prompt` MCP tool, where they belong.
484
492
  server.setRequestHandler(ListPromptsRequestSchema, async () => ({
485
493
  prompts: listSkills("public").map((skill) => ({
486
494
  name: skill.name,
487
495
  description: skill.description,
488
- arguments: [
489
- {
490
- name: "offset",
491
- description: "Optional character offset for chunked prompt reads.",
492
- required: false,
493
- },
494
- {
495
- name: "limit",
496
- description: "Optional max characters to return for chunked prompt reads.",
497
- required: false,
498
- },
499
- ],
496
+ arguments: [],
500
497
  })),
501
498
  }));
502
499
  // Get prompt content
@@ -190,7 +190,7 @@ export declare function fetchLinkedInPosts(linkedinUrl: string, limit?: number):
190
190
  }>;
191
191
  export declare function fetchLinkedInProfile(linkedinUrl: string, options?: {
192
192
  full?: boolean;
193
- }): Promise<unknown>;
193
+ }): Promise<any>;
194
194
  export declare function fetchCompany(companyUrl: string): Promise<unknown>;
195
195
  export declare function fetchCompanyPosts(companyUrl: string, limit?: number, sortBy?: "recent" | "top"): Promise<{
196
196
  posts: SerializedPost[];
@@ -200,7 +200,7 @@ export declare function getUserPosts(linkedinUrl: string, maxPosts?: number): Pr
200
200
  posts: SerializedPost[];
201
201
  count: number;
202
202
  }>;
203
- export declare function getLinkedInProfile(linkedinUrl: string): Promise<unknown>;
203
+ export declare function getLinkedInProfile(linkedinUrl: string): Promise<any>;
204
204
  interface PostEngager {
205
205
  name: string;
206
206
  headline: string;
@@ -163,7 +163,24 @@ export async function fetchLinkedInProfile(linkedinUrl, options = {}) {
163
163
  if (options.full) {
164
164
  params.set("full", "true");
165
165
  }
166
- return api.get(`/api/v1/scrape/linkedin/profile?${params.toString()}`);
166
+ const raw = await api.get(`/api/v1/scrape/linkedin/profile?${params.toString()}`);
167
+ // Server returns the same profile object triplicated as `.data`,
168
+ // `.person`, AND `.profile.person` for backwards-compat with web
169
+ // callers (signal-discovery, profile-enrichment, canonical-cache, etc).
170
+ // For the MCP layer, that ~3xs the JSON size and routinely breaches
171
+ // Claude Code's max-token cap on tool results — which triggers the
172
+ // harness's "save to file + read in chunks via python3" overflow
173
+ // fallback. Strip the duplicates here so the agent gets one clean
174
+ // copy of the data under a single `profile` key.
175
+ if (raw &&
176
+ typeof raw === "object" &&
177
+ raw.status === "success" &&
178
+ (raw.data || raw.person || raw.profile?.person)) {
179
+ const canonical = raw.data ?? raw.person ?? raw.profile?.person;
180
+ const { status, data, person, profile, ...rest } = raw;
181
+ return { status, profile: canonical, ...rest };
182
+ }
183
+ return raw;
167
184
  }
168
185
  export async function fetchCompany(companyUrl) {
169
186
  const api = getApi();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.34",
3
+ "version": "0.1.36",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",