@bluehive/sdk-mcp 0.1.0-alpha.2 → 0.1.0-alpha.3

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.
Files changed (69) hide show
  1. package/filtering.d.mts +2 -0
  2. package/filtering.d.mts.map +1 -0
  3. package/filtering.d.ts +2 -0
  4. package/filtering.d.ts.map +1 -0
  5. package/filtering.js +17 -0
  6. package/filtering.js.map +1 -0
  7. package/filtering.mjs +14 -0
  8. package/filtering.mjs.map +1 -0
  9. package/package.json +13 -2
  10. package/server.js +1 -1
  11. package/server.mjs +1 -1
  12. package/src/filtering.ts +13 -0
  13. package/src/server.ts +1 -1
  14. package/src/tools/database/check-health-database.ts +12 -3
  15. package/src/tools/fax/list-providers-fax.ts +12 -3
  16. package/src/tools/fax/retrieve-status-fax.ts +10 -2
  17. package/src/tools/fax/send-fax.ts +10 -2
  18. package/src/tools/health/check-health.ts +12 -3
  19. package/src/tools/providers/lookup-providers.ts +10 -2
  20. package/src/tools/types.ts +1 -1
  21. package/src/tools/version/retrieve-version.ts +12 -3
  22. package/tools/database/check-health-database.d.mts.map +1 -1
  23. package/tools/database/check-health-database.d.ts.map +1 -1
  24. package/tools/database/check-health-database.js +10 -3
  25. package/tools/database/check-health-database.js.map +1 -1
  26. package/tools/database/check-health-database.mjs +10 -3
  27. package/tools/database/check-health-database.mjs.map +1 -1
  28. package/tools/fax/list-providers-fax.d.mts.map +1 -1
  29. package/tools/fax/list-providers-fax.d.ts.map +1 -1
  30. package/tools/fax/list-providers-fax.js +10 -3
  31. package/tools/fax/list-providers-fax.js.map +1 -1
  32. package/tools/fax/list-providers-fax.mjs +10 -3
  33. package/tools/fax/list-providers-fax.mjs.map +1 -1
  34. package/tools/fax/retrieve-status-fax.d.mts.map +1 -1
  35. package/tools/fax/retrieve-status-fax.d.ts.map +1 -1
  36. package/tools/fax/retrieve-status-fax.js +8 -2
  37. package/tools/fax/retrieve-status-fax.js.map +1 -1
  38. package/tools/fax/retrieve-status-fax.mjs +8 -2
  39. package/tools/fax/retrieve-status-fax.mjs.map +1 -1
  40. package/tools/fax/send-fax.d.mts.map +1 -1
  41. package/tools/fax/send-fax.d.ts.map +1 -1
  42. package/tools/fax/send-fax.js +8 -2
  43. package/tools/fax/send-fax.js.map +1 -1
  44. package/tools/fax/send-fax.mjs +8 -2
  45. package/tools/fax/send-fax.mjs.map +1 -1
  46. package/tools/health/check-health.d.mts.map +1 -1
  47. package/tools/health/check-health.d.ts.map +1 -1
  48. package/tools/health/check-health.js +10 -3
  49. package/tools/health/check-health.js.map +1 -1
  50. package/tools/health/check-health.mjs +10 -3
  51. package/tools/health/check-health.mjs.map +1 -1
  52. package/tools/providers/lookup-providers.d.mts.map +1 -1
  53. package/tools/providers/lookup-providers.d.ts.map +1 -1
  54. package/tools/providers/lookup-providers.js +8 -2
  55. package/tools/providers/lookup-providers.js.map +1 -1
  56. package/tools/providers/lookup-providers.mjs +8 -2
  57. package/tools/providers/lookup-providers.mjs.map +1 -1
  58. package/tools/types.d.mts +1 -1
  59. package/tools/types.d.mts.map +1 -1
  60. package/tools/types.d.ts +1 -1
  61. package/tools/types.d.ts.map +1 -1
  62. package/tools/types.js.map +1 -1
  63. package/tools/types.mjs.map +1 -1
  64. package/tools/version/retrieve-version.d.mts.map +1 -1
  65. package/tools/version/retrieve-version.d.ts.map +1 -1
  66. package/tools/version/retrieve-version.js +10 -3
  67. package/tools/version/retrieve-version.js.map +1 -1
  68. package/tools/version/retrieve-version.mjs +10 -3
  69. package/tools/version/retrieve-version.mjs.map +1 -1
@@ -0,0 +1,2 @@
1
+ export declare function maybeFilter(args: Record<string, unknown> | undefined, response: any): Promise<any>;
2
+ //# sourceMappingURL=filtering.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.d.mts","sourceRoot":"","sources":["src/filtering.ts"],"names":[],"mappings":"AAAA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAOxG"}
package/filtering.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare function maybeFilter(args: Record<string, unknown> | undefined, response: any): Promise<any>;
2
+ //# sourceMappingURL=filtering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["src/filtering.ts"],"names":[],"mappings":"AAAA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAOxG"}
package/filtering.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.maybeFilter = maybeFilter;
4
+ async function maybeFilter(args, response) {
5
+ const jqFilter = args?.['jq_filter'];
6
+ if (jqFilter && typeof jqFilter === 'string') {
7
+ return await jq(response, jqFilter);
8
+ }
9
+ else {
10
+ return response;
11
+ }
12
+ }
13
+ var jqWeb = require('jq-web');
14
+ async function jq(json, jqFilter) {
15
+ return (await jqWeb).json(json, jqFilter);
16
+ }
17
+ //# sourceMappingURL=filtering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.js","sourceRoot":"","sources":["src/filtering.ts"],"names":[],"mappings":";;AAAA,kCAOC;AAPM,KAAK,UAAU,WAAW,CAAC,IAAyC,EAAE,QAAa;IACxF,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC9B,KAAK,UAAU,EAAE,CAAC,IAAS,EAAE,QAAgB;IAC3C,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC"}
package/filtering.mjs ADDED
@@ -0,0 +1,14 @@
1
+ export async function maybeFilter(args, response) {
2
+ const jqFilter = args?.['jq_filter'];
3
+ if (jqFilter && typeof jqFilter === 'string') {
4
+ return await jq(response, jqFilter);
5
+ }
6
+ else {
7
+ return response;
8
+ }
9
+ }
10
+ var jqWeb = require('jq-web');
11
+ async function jq(json, jqFilter) {
12
+ return (await jqWeb).json(json, jqFilter);
13
+ }
14
+ //# sourceMappingURL=filtering.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.mjs","sourceRoot":"","sources":["src/filtering.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAyC,EAAE,QAAa;IACxF,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC;IACrC,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC9B,KAAK,UAAU,EAAE,CAAC,IAAS,EAAE,QAAgB;IAC3C,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bluehive/sdk-mcp",
3
- "version": "0.1.0-alpha.2",
3
+ "version": "0.1.0-alpha.3",
4
4
  "description": "The official MCP Server for the BlueHive API",
5
5
  "author": "BlueHive <wreiske@bluehive.com>",
6
6
  "types": "./index.d.ts",
@@ -24,8 +24,9 @@
24
24
  "fix": "eslint --fix --ext ts,js ."
25
25
  },
26
26
  "dependencies": {
27
- "@bluehive/sdk": "^0.1.0-alpha.2",
27
+ "@bluehive/sdk": "^0.1.0-alpha.3",
28
28
  "@modelcontextprotocol/sdk": "^1.11.5",
29
+ "jq-web": "^0.6.2",
29
30
  "yargs": "^17.7.2",
30
31
  "@cloudflare/cabidela": "^0.2.4",
31
32
  "zod": "^3.25.20",
@@ -67,6 +68,16 @@
67
68
  "./dynamic-tools.mjs": {
68
69
  "default": "./dynamic-tools.mjs"
69
70
  },
71
+ "./filtering": {
72
+ "import": "./filtering.mjs",
73
+ "require": "./filtering.js"
74
+ },
75
+ "./filtering.js": {
76
+ "default": "./filtering.js"
77
+ },
78
+ "./filtering.mjs": {
79
+ "default": "./filtering.mjs"
80
+ },
70
81
  "./index": {
71
82
  "import": "./index.mjs",
72
83
  "require": "./index.js"
package/server.js CHANGED
@@ -20,7 +20,7 @@ Object.defineProperty(exports, "endpoints", { enumerable: true, get: function ()
20
20
  // Create server instance
21
21
  exports.server = new mcp_js_1.McpServer({
22
22
  name: 'blue_hive_sdk_api',
23
- version: '0.1.0-alpha.2',
23
+ version: '0.1.0-alpha.3',
24
24
  }, {
25
25
  capabilities: {
26
26
  tools: {},
package/server.mjs CHANGED
@@ -9,7 +9,7 @@ export { endpoints } from "./tools.mjs";
9
9
  // Create server instance
10
10
  export const server = new McpServer({
11
11
  name: 'blue_hive_sdk_api',
12
- version: '0.1.0-alpha.2',
12
+ version: '0.1.0-alpha.3',
13
13
  }, {
14
14
  capabilities: {
15
15
  tools: {},
@@ -0,0 +1,13 @@
1
+ export async function maybeFilter(args: Record<string, unknown> | undefined, response: any): Promise<any> {
2
+ const jqFilter = args?.['jq_filter'];
3
+ if (jqFilter && typeof jqFilter === 'string') {
4
+ return await jq(response, jqFilter);
5
+ } else {
6
+ return response;
7
+ }
8
+ }
9
+
10
+ var jqWeb = require('jq-web');
11
+ async function jq(json: any, jqFilter: string) {
12
+ return (await jqWeb).json(json, jqFilter);
13
+ }
package/src/server.ts CHANGED
@@ -26,7 +26,7 @@ export { endpoints } from './tools';
26
26
  export const server = new McpServer(
27
27
  {
28
28
  name: 'blue_hive_sdk_api',
29
- version: '0.1.0-alpha.2',
29
+ version: '0.1.0-alpha.3',
30
30
  },
31
31
  {
32
32
  capabilities: {
@@ -1,5 +1,6 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ import { maybeFilter } from '@bluehive/sdk-mcp/filtering';
3
4
  import { asTextContentResult } from '@bluehive/sdk-mcp/tools/types';
4
5
 
5
6
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,15 +18,23 @@ export const metadata: Metadata = {
17
18
 
18
19
  export const tool: Tool = {
19
20
  name: 'check_health_database',
20
- description: 'Check MongoDB database connectivity and retrieve health statistics.',
21
+ description:
22
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCheck MongoDB database connectivity and retrieve health statistics.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n status: {\n type: 'string',\n description: 'Database health status',\n enum: [ 'ok',\n 'error'\n ]\n },\n timestamp: {\n type: 'string',\n description: 'Health check timestamp'\n },\n database: {\n type: 'string',\n description: 'Database name (hidden in production)'\n },\n error: {\n type: 'string',\n description: 'Error message if status is error'\n },\n stats: {\n type: 'object',\n description: 'Database statistics (not available in production)',\n properties: {\n collections: {\n type: 'number',\n description: 'Number of collections'\n },\n dataSize: {\n type: 'number',\n description: 'Total data size in bytes'\n },\n documents: {\n type: 'number',\n description: 'Total number of documents'\n }\n },\n required: []\n }\n },\n required: [ 'status',\n 'timestamp'\n ]\n}\n```",
21
23
  inputSchema: {
22
24
  type: 'object',
23
- properties: {},
25
+ properties: {
26
+ jq_filter: {
27
+ type: 'string',
28
+ title: 'jq Filter',
29
+ description:
30
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
31
+ },
32
+ },
24
33
  },
25
34
  };
26
35
 
27
36
  export const handler = async (client: BlueHive, args: Record<string, unknown> | undefined) => {
28
- return asTextContentResult(await client.database.checkHealth());
37
+ return asTextContentResult(await maybeFilter(args, await client.database.checkHealth()));
29
38
  };
30
39
 
31
40
  export default { metadata, tool, handler };
@@ -1,5 +1,6 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ import { maybeFilter } from '@bluehive/sdk-mcp/filtering';
3
4
  import { asTextContentResult } from '@bluehive/sdk-mcp/tools/types';
4
5
 
5
6
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,15 +18,23 @@ export const metadata: Metadata = {
17
18
 
18
19
  export const tool: Tool = {
19
20
  name: 'list_providers_fax',
20
- description: 'Get a list of available fax providers and their configuration status.',
21
+ description:
22
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a list of available fax providers and their configuration status.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n providers: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n configured: {\n type: 'boolean',\n description: 'Whether the provider is properly configured'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this is the default provider'\n },\n name: {\n type: 'string',\n description: 'Provider name'\n }\n },\n required: [ 'configured',\n 'isDefault',\n 'name'\n ]\n }\n }\n },\n required: [ 'providers'\n ]\n}\n```",
21
23
  inputSchema: {
22
24
  type: 'object',
23
- properties: {},
25
+ properties: {
26
+ jq_filter: {
27
+ type: 'string',
28
+ title: 'jq Filter',
29
+ description:
30
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
31
+ },
32
+ },
24
33
  },
25
34
  };
26
35
 
27
36
  export const handler = async (client: BlueHive, args: Record<string, unknown> | undefined) => {
28
- return asTextContentResult(await client.fax.listProviders());
37
+ return asTextContentResult(await maybeFilter(args, await client.fax.listProviders()));
29
38
  };
30
39
 
31
40
  export default { metadata, tool, handler };
@@ -1,5 +1,6 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ import { maybeFilter } from '@bluehive/sdk-mcp/filtering';
3
4
  import { asTextContentResult } from '@bluehive/sdk-mcp/tools/types';
4
5
 
5
6
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,20 +18,27 @@ export const metadata: Metadata = {
17
18
 
18
19
  export const tool: Tool = {
19
20
  name: 'retrieve_status_fax',
20
- description: 'Retrieve the current status and details of a fax by its ID.',
21
+ description:
22
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieve the current status and details of a fax by its ID.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'Fax identifier'\n },\n createdAt: {\n type: 'string',\n description: 'ISO timestamp when fax was created'\n },\n from: {\n type: 'string',\n description: 'Sender fax number'\n },\n provider: {\n type: 'string',\n description: 'Provider used to send the fax'\n },\n status: {\n type: 'string',\n description: 'Current fax status',\n enum: [ 'queued',\n 'dialing',\n 'sending',\n 'delivered',\n 'failed',\n 'cancelled',\n 'retrying'\n ]\n },\n to: {\n type: 'string',\n description: 'Recipient fax number'\n },\n updatedAt: {\n type: 'string',\n description: 'ISO timestamp when status was last updated'\n },\n cost: {\n type: 'number',\n description: 'Cost of the fax'\n },\n deliveredAt: {\n type: 'string',\n description: 'ISO timestamp when fax was delivered'\n },\n duration: {\n type: 'number',\n description: 'Call duration in seconds'\n },\n errorMessage: {\n type: 'string',\n description: 'Error message if fax failed'\n },\n pageCount: {\n type: 'number',\n description: 'Number of pages in the fax'\n },\n providerData: {\n type: 'object',\n description: 'Provider-specific additional data'\n }\n },\n required: [ 'id',\n 'createdAt',\n 'from',\n 'provider',\n 'status',\n 'to',\n 'updatedAt'\n ]\n}\n```",
21
23
  inputSchema: {
22
24
  type: 'object',
23
25
  properties: {
24
26
  id: {
25
27
  type: 'string',
26
28
  },
29
+ jq_filter: {
30
+ type: 'string',
31
+ title: 'jq Filter',
32
+ description:
33
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
34
+ },
27
35
  },
28
36
  },
29
37
  };
30
38
 
31
39
  export const handler = async (client: BlueHive, args: Record<string, unknown> | undefined) => {
32
40
  const { id, ...body } = args as any;
33
- return asTextContentResult(await client.fax.retrieveStatus(id));
41
+ return asTextContentResult(await maybeFilter(args, await client.fax.retrieveStatus(id)));
34
42
  };
35
43
 
36
44
  export default { metadata, tool, handler };
@@ -1,5 +1,6 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ import { maybeFilter } from '@bluehive/sdk-mcp/filtering';
3
4
  import { asTextContentResult } from '@bluehive/sdk-mcp/tools/types';
4
5
 
5
6
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,7 +18,8 @@ export const metadata: Metadata = {
17
18
 
18
19
  export const tool: Tool = {
19
20
  name: 'send_fax',
20
- description: 'Send a fax document to a specified number using the configured fax provider.',
21
+ description:
22
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nSend a fax document to a specified number using the configured fax provider.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'Unique fax identifier'\n },\n createdAt: {\n type: 'string',\n description: 'ISO timestamp when fax was created'\n },\n from: {\n type: 'string',\n description: 'Sender fax number'\n },\n provider: {\n type: 'string',\n description: 'Provider used to send the fax'\n },\n status: {\n type: 'string',\n description: 'Current fax status',\n enum: [ 'queued',\n 'dialing',\n 'sending',\n 'delivered',\n 'failed',\n 'cancelled',\n 'retrying'\n ]\n },\n to: {\n type: 'string',\n description: 'Recipient fax number'\n },\n estimatedDelivery: {\n type: 'string',\n description: 'Estimated delivery time (ISO timestamp)'\n }\n },\n required: [ 'id',\n 'createdAt',\n 'from',\n 'provider',\n 'status',\n 'to'\n ]\n}\n```",
21
23
  inputSchema: {
22
24
  type: 'object',
23
25
  properties: {
@@ -64,13 +66,19 @@ export const tool: Tool = {
64
66
  type: 'string',
65
67
  description: 'Subject line for the fax',
66
68
  },
69
+ jq_filter: {
70
+ type: 'string',
71
+ title: 'jq Filter',
72
+ description:
73
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
74
+ },
67
75
  },
68
76
  },
69
77
  };
70
78
 
71
79
  export const handler = async (client: BlueHive, args: Record<string, unknown> | undefined) => {
72
80
  const body = args as any;
73
- return asTextContentResult(await client.fax.send(body));
81
+ return asTextContentResult(await maybeFilter(args, await client.fax.send(body)));
74
82
  };
75
83
 
76
84
  export default { metadata, tool, handler };
@@ -1,5 +1,6 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ import { maybeFilter } from '@bluehive/sdk-mcp/filtering';
3
4
  import { asTextContentResult } from '@bluehive/sdk-mcp/tools/types';
4
5
 
5
6
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,15 +18,23 @@ export const metadata: Metadata = {
17
18
 
18
19
  export const tool: Tool = {
19
20
  name: 'check_health',
20
- description: 'Check the service health and ensure the API is running properly.',
21
+ description:
22
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCheck the service health and ensure the API is running properly.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n status: {\n type: 'string',\n enum: [ 'ok'\n ]\n }\n },\n required: [ 'status'\n ]\n}\n```",
21
23
  inputSchema: {
22
24
  type: 'object',
23
- properties: {},
25
+ properties: {
26
+ jq_filter: {
27
+ type: 'string',
28
+ title: 'jq Filter',
29
+ description:
30
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
31
+ },
32
+ },
24
33
  },
25
34
  };
26
35
 
27
36
  export const handler = async (client: BlueHive, args: Record<string, unknown> | undefined) => {
28
- return asTextContentResult(await client.health.check());
37
+ return asTextContentResult(await maybeFilter(args, await client.health.check()));
29
38
  };
30
39
 
31
40
  export default { metadata, tool, handler };
@@ -1,5 +1,6 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ import { maybeFilter } from '@bluehive/sdk-mcp/filtering';
3
4
  import { asTextContentResult } from '@bluehive/sdk-mcp/tools/types';
4
5
 
5
6
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,7 +18,8 @@ export const metadata: Metadata = {
17
18
 
18
19
  export const tool: Tool = {
19
20
  name: 'lookup_providers',
20
- description: 'Search for healthcare providers by NPI number, name, or location proximity.',
21
+ description:
22
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nSearch for healthcare providers by NPI number, name, or location proximity.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n count: {\n type: 'number',\n description: 'Number of providers found'\n },\n providers: {\n type: 'array',\n description: 'List of matching providers',\n items: {\n type: 'object',\n properties: {\n address_1: {\n type: 'string',\n description: 'Primary address line'\n },\n address_2: {\n type: 'string',\n description: 'Secondary address line (suite, unit, etc.)'\n },\n city: {\n type: 'string',\n description: 'City'\n },\n country: {\n type: 'string',\n description: 'Country code'\n },\n distance: {\n type: 'number',\n description: 'Distance in miles from the provided ZIP code'\n },\n fax_number: {\n type: 'string',\n description: 'Fax number'\n },\n firstname: {\n type: 'string',\n description: 'Provider first name'\n },\n lastname: {\n type: 'string',\n description: 'Provider last name or organization name'\n },\n npi: {\n type: 'string',\n description: 'National Provider Identifier (NPI) number'\n },\n postal_code: {\n type: 'string',\n description: 'Postal/ZIP code'\n },\n state_province: {\n type: 'string',\n description: 'State or province code'\n },\n work_phone: {\n type: 'string',\n description: 'Work phone number'\n }\n },\n required: [ 'address_1',\n 'address_2',\n 'city',\n 'country',\n 'distance',\n 'fax_number',\n 'firstname',\n 'lastname',\n 'npi',\n 'postal_code',\n 'state_province',\n 'work_phone'\n ]\n }\n }\n },\n required: [ 'count',\n 'providers'\n ]\n}\n```",
21
23
  inputSchema: {
22
24
  type: 'object',
23
25
  properties: {
@@ -37,13 +39,19 @@ export const tool: Tool = {
37
39
  type: 'string',
38
40
  description: 'ZIP code to filter results by proximity',
39
41
  },
42
+ jq_filter: {
43
+ type: 'string',
44
+ title: 'jq Filter',
45
+ description:
46
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
47
+ },
40
48
  },
41
49
  },
42
50
  };
43
51
 
44
52
  export const handler = async (client: BlueHive, args: Record<string, unknown> | undefined) => {
45
53
  const body = args as any;
46
- return asTextContentResult(await client.providers.lookup(body));
54
+ return asTextContentResult(await maybeFilter(args, await client.providers.lookup(body)));
47
55
  };
48
56
 
49
57
  export default { metadata, tool, handler };
@@ -47,7 +47,7 @@ export type HandlerFunction = (
47
47
  args: Record<string, unknown> | undefined,
48
48
  ) => Promise<ToolCallResult>;
49
49
 
50
- export function asTextContentResult(result: Object): ToolCallResult {
50
+ export function asTextContentResult(result: unknown): ToolCallResult {
51
51
  return {
52
52
  content: [
53
53
  {
@@ -1,5 +1,6 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ import { maybeFilter } from '@bluehive/sdk-mcp/filtering';
3
4
  import { asTextContentResult } from '@bluehive/sdk-mcp/tools/types';
4
5
 
5
6
  import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,15 +18,23 @@ export const metadata: Metadata = {
17
18
 
18
19
  export const tool: Tool = {
19
20
  name: 'retrieve_version',
20
- description: 'Retrieve the current version of the BlueHive API.',
21
+ description:
22
+ "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nRetrieve the current version of the BlueHive API.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n version: {\n type: 'string'\n }\n },\n required: [ 'version'\n ]\n}\n```",
21
23
  inputSchema: {
22
24
  type: 'object',
23
- properties: {},
25
+ properties: {
26
+ jq_filter: {
27
+ type: 'string',
28
+ title: 'jq Filter',
29
+ description:
30
+ 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
31
+ },
32
+ },
24
33
  },
25
34
  };
26
35
 
27
36
  export const handler = async (client: BlueHive, args: Record<string, unknown> | undefined) => {
28
- return asTextContentResult(await client.version.retrieve());
37
+ return asTextContentResult(await maybeFilter(args, await client.version.retrieve()));
29
38
  };
30
39
 
31
40
  export default { metadata, tool, handler };
@@ -1 +1 @@
1
- {"version":3,"file":"check-health-database.d.mts","sourceRoot":"","sources":["../../src/tools/database/check-health-database.ts"],"names":[],"mappings":"OAIO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAOlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAExF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAFoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAIzF,wBAA2C"}
1
+ {"version":3,"file":"check-health-database.d.mts","sourceRoot":"","sources":["../../src/tools/database/check-health-database.ts"],"names":[],"mappings":"OAKO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAelB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAExF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAFoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAIzF,wBAA2C"}
@@ -1 +1 @@
1
- {"version":3,"file":"check-health-database.d.ts","sourceRoot":"","sources":["../../src/tools/database/check-health-database.ts"],"names":[],"mappings":"OAIO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAOlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAExF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAFoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAIzF,wBAA2C"}
1
+ {"version":3,"file":"check-health-database.d.ts","sourceRoot":"","sources":["../../src/tools/database/check-health-database.ts"],"names":[],"mappings":"OAKO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAelB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAExF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAFoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAIzF,wBAA2C"}
@@ -2,6 +2,7 @@
2
2
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.handler = exports.tool = exports.metadata = void 0;
5
+ const filtering_1 = require("@bluehive/sdk-mcp/filtering");
5
6
  const types_1 = require("@bluehive/sdk-mcp/tools/types");
6
7
  exports.metadata = {
7
8
  resource: 'database',
@@ -13,14 +14,20 @@ exports.metadata = {
13
14
  };
14
15
  exports.tool = {
15
16
  name: 'check_health_database',
16
- description: 'Check MongoDB database connectivity and retrieve health statistics.',
17
+ description: "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCheck MongoDB database connectivity and retrieve health statistics.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n status: {\n type: 'string',\n description: 'Database health status',\n enum: [ 'ok',\n 'error'\n ]\n },\n timestamp: {\n type: 'string',\n description: 'Health check timestamp'\n },\n database: {\n type: 'string',\n description: 'Database name (hidden in production)'\n },\n error: {\n type: 'string',\n description: 'Error message if status is error'\n },\n stats: {\n type: 'object',\n description: 'Database statistics (not available in production)',\n properties: {\n collections: {\n type: 'number',\n description: 'Number of collections'\n },\n dataSize: {\n type: 'number',\n description: 'Total data size in bytes'\n },\n documents: {\n type: 'number',\n description: 'Total number of documents'\n }\n },\n required: []\n }\n },\n required: [ 'status',\n 'timestamp'\n ]\n}\n```",
17
18
  inputSchema: {
18
19
  type: 'object',
19
- properties: {},
20
+ properties: {
21
+ jq_filter: {
22
+ type: 'string',
23
+ title: 'jq Filter',
24
+ description: 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
25
+ },
26
+ },
20
27
  },
21
28
  };
22
29
  const handler = async (client, args) => {
23
- return (0, types_1.asTextContentResult)(await client.database.checkHealth());
30
+ return (0, types_1.asTextContentResult)(await (0, filtering_1.maybeFilter)(args, await client.database.checkHealth()));
24
31
  };
25
32
  exports.handler = handler;
26
33
  exports.default = { metadata: exports.metadata, tool: exports.tool, handler: exports.handler };
@@ -1 +1 @@
1
- {"version":3,"file":"check-health-database.js","sourceRoot":"","sources":["../../src/tools/database/check-health-database.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,yDAAoE;AAMvD,QAAA,QAAQ,GAAa;IAChC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,qBAAqB;IAC/B,WAAW,EAAE,qBAAqB;CACnC,CAAC;AAEW,QAAA,IAAI,GAAS;IACxB,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,qEAAqE;IAClF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;KACf;CACF,CAAC;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,MAAgB,EAAE,IAAyC,EAAE,EAAE;IAC3F,OAAO,IAAA,2BAAmB,EAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEF,kBAAe,EAAE,QAAQ,EAAR,gBAAQ,EAAE,IAAI,EAAJ,YAAI,EAAE,OAAO,EAAP,eAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"check-health-database.js","sourceRoot":"","sources":["../../src/tools/database/check-health-database.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,2DAA0D;AAC1D,yDAAoE;AAMvD,QAAA,QAAQ,GAAa;IAChC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,qBAAqB;IAC/B,WAAW,EAAE,qBAAqB;CACnC,CAAC;AAEW,QAAA,IAAI,GAAS;IACxB,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,uyCAAuyC;IACzyC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,kWAAkW;aACrW;SACF;KACF;CACF,CAAC;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,MAAgB,EAAE,IAAyC,EAAE,EAAE;IAC3F,OAAO,IAAA,2BAAmB,EAAC,MAAM,IAAA,uBAAW,EAAC,IAAI,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEF,kBAAe,EAAE,QAAQ,EAAR,gBAAQ,EAAE,IAAI,EAAJ,YAAI,EAAE,OAAO,EAAP,eAAO,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { maybeFilter } from '@bluehive/sdk-mcp/filtering';
2
3
  import { asTextContentResult } from '@bluehive/sdk-mcp/tools/types';
3
4
  export const metadata = {
4
5
  resource: 'database',
@@ -10,14 +11,20 @@ export const metadata = {
10
11
  };
11
12
  export const tool = {
12
13
  name: 'check_health_database',
13
- description: 'Check MongoDB database connectivity and retrieve health statistics.',
14
+ description: "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nCheck MongoDB database connectivity and retrieve health statistics.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n status: {\n type: 'string',\n description: 'Database health status',\n enum: [ 'ok',\n 'error'\n ]\n },\n timestamp: {\n type: 'string',\n description: 'Health check timestamp'\n },\n database: {\n type: 'string',\n description: 'Database name (hidden in production)'\n },\n error: {\n type: 'string',\n description: 'Error message if status is error'\n },\n stats: {\n type: 'object',\n description: 'Database statistics (not available in production)',\n properties: {\n collections: {\n type: 'number',\n description: 'Number of collections'\n },\n dataSize: {\n type: 'number',\n description: 'Total data size in bytes'\n },\n documents: {\n type: 'number',\n description: 'Total number of documents'\n }\n },\n required: []\n }\n },\n required: [ 'status',\n 'timestamp'\n ]\n}\n```",
14
15
  inputSchema: {
15
16
  type: 'object',
16
- properties: {},
17
+ properties: {
18
+ jq_filter: {
19
+ type: 'string',
20
+ title: 'jq Filter',
21
+ description: 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
22
+ },
23
+ },
17
24
  },
18
25
  };
19
26
  export const handler = async (client, args) => {
20
- return asTextContentResult(await client.database.checkHealth());
27
+ return asTextContentResult(await maybeFilter(args, await client.database.checkHealth()));
21
28
  };
22
29
  export default { metadata, tool, handler };
23
30
  //# sourceMappingURL=check-health-database.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-health-database.mjs","sourceRoot":"","sources":["../../src/tools/database/check-health-database.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,mBAAmB,EAAE,MAAM,+BAA+B;AAMnE,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,qBAAqB;IAC/B,WAAW,EAAE,qBAAqB;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,qEAAqE;IAClF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAgB,EAAE,IAAyC,EAAE,EAAE;IAC3F,OAAO,mBAAmB,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"check-health-database.mjs","sourceRoot":"","sources":["../../src/tools/database/check-health-database.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE,MAAM,6BAA6B;OAClD,EAAE,mBAAmB,EAAE,MAAM,+BAA+B;AAMnE,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,qBAAqB;IAC/B,WAAW,EAAE,qBAAqB;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACT,uyCAAuyC;IACzyC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,kWAAkW;aACrW;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAgB,EAAE,IAAyC,EAAE,EAAE;IAC3F,OAAO,mBAAmB,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-providers-fax.d.mts","sourceRoot":"","sources":["../../src/tools/fax/list-providers-fax.ts"],"names":[],"mappings":"OAIO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAOlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAExF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAFoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAIzF,wBAA2C"}
1
+ {"version":3,"file":"list-providers-fax.d.mts","sourceRoot":"","sources":["../../src/tools/fax/list-providers-fax.ts"],"names":[],"mappings":"OAKO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAelB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAExF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAFoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAIzF,wBAA2C"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-providers-fax.d.ts","sourceRoot":"","sources":["../../src/tools/fax/list-providers-fax.ts"],"names":[],"mappings":"OAIO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAOlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAExF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAFoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAIzF,wBAA2C"}
1
+ {"version":3,"file":"list-providers-fax.d.ts","sourceRoot":"","sources":["../../src/tools/fax/list-providers-fax.ts"],"names":[],"mappings":"OAKO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAelB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAExF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAFoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAIzF,wBAA2C"}
@@ -2,6 +2,7 @@
2
2
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.handler = exports.tool = exports.metadata = void 0;
5
+ const filtering_1 = require("@bluehive/sdk-mcp/filtering");
5
6
  const types_1 = require("@bluehive/sdk-mcp/tools/types");
6
7
  exports.metadata = {
7
8
  resource: 'fax',
@@ -13,14 +14,20 @@ exports.metadata = {
13
14
  };
14
15
  exports.tool = {
15
16
  name: 'list_providers_fax',
16
- description: 'Get a list of available fax providers and their configuration status.',
17
+ description: "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a list of available fax providers and their configuration status.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n providers: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n configured: {\n type: 'boolean',\n description: 'Whether the provider is properly configured'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this is the default provider'\n },\n name: {\n type: 'string',\n description: 'Provider name'\n }\n },\n required: [ 'configured',\n 'isDefault',\n 'name'\n ]\n }\n }\n },\n required: [ 'providers'\n ]\n}\n```",
17
18
  inputSchema: {
18
19
  type: 'object',
19
- properties: {},
20
+ properties: {
21
+ jq_filter: {
22
+ type: 'string',
23
+ title: 'jq Filter',
24
+ description: 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
25
+ },
26
+ },
20
27
  },
21
28
  };
22
29
  const handler = async (client, args) => {
23
- return (0, types_1.asTextContentResult)(await client.fax.listProviders());
30
+ return (0, types_1.asTextContentResult)(await (0, filtering_1.maybeFilter)(args, await client.fax.listProviders()));
24
31
  };
25
32
  exports.handler = handler;
26
33
  exports.default = { metadata: exports.metadata, tool: exports.tool, handler: exports.handler };
@@ -1 +1 @@
1
- {"version":3,"file":"list-providers-fax.js","sourceRoot":"","sources":["../../src/tools/fax/list-providers-fax.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,yDAAoE;AAMvD,QAAA,QAAQ,GAAa;IAChC,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,kBAAkB;CAChC,CAAC;AAEW,QAAA,IAAI,GAAS;IACxB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,uEAAuE;IACpF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;KACf;CACF,CAAC;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,MAAgB,EAAE,IAAyC,EAAE,EAAE;IAC3F,OAAO,IAAA,2BAAmB,EAAC,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEF,kBAAe,EAAE,QAAQ,EAAR,gBAAQ,EAAE,IAAI,EAAJ,YAAI,EAAE,OAAO,EAAP,eAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"list-providers-fax.js","sourceRoot":"","sources":["../../src/tools/fax/list-providers-fax.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,2DAA0D;AAC1D,yDAAoE;AAMvD,QAAA,QAAQ,GAAa;IAChC,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,kBAAkB;CAChC,CAAC;AAEW,QAAA,IAAI,GAAS;IACxB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,m8BAAm8B;IACr8B,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,kWAAkW;aACrW;SACF;KACF;CACF,CAAC;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,MAAgB,EAAE,IAAyC,EAAE,EAAE;IAC3F,OAAO,IAAA,2BAAmB,EAAC,MAAM,IAAA,uBAAW,EAAC,IAAI,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEF,kBAAe,EAAE,QAAQ,EAAR,gBAAQ,EAAE,IAAI,EAAJ,YAAI,EAAE,OAAO,EAAP,eAAO,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { maybeFilter } from '@bluehive/sdk-mcp/filtering';
2
3
  import { asTextContentResult } from '@bluehive/sdk-mcp/tools/types';
3
4
  export const metadata = {
4
5
  resource: 'fax',
@@ -10,14 +11,20 @@ export const metadata = {
10
11
  };
11
12
  export const tool = {
12
13
  name: 'list_providers_fax',
13
- description: 'Get a list of available fax providers and their configuration status.',
14
+ description: "When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet a list of available fax providers and their configuration status.\n\n# Response Schema\n```json\n{\n type: 'object',\n properties: {\n providers: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n configured: {\n type: 'boolean',\n description: 'Whether the provider is properly configured'\n },\n isDefault: {\n type: 'boolean',\n description: 'Whether this is the default provider'\n },\n name: {\n type: 'string',\n description: 'Provider name'\n }\n },\n required: [ 'configured',\n 'isDefault',\n 'name'\n ]\n }\n }\n },\n required: [ 'providers'\n ]\n}\n```",
14
15
  inputSchema: {
15
16
  type: 'object',
16
- properties: {},
17
+ properties: {
18
+ jq_filter: {
19
+ type: 'string',
20
+ title: 'jq Filter',
21
+ description: 'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
22
+ },
23
+ },
17
24
  },
18
25
  };
19
26
  export const handler = async (client, args) => {
20
- return asTextContentResult(await client.fax.listProviders());
27
+ return asTextContentResult(await maybeFilter(args, await client.fax.listProviders()));
21
28
  };
22
29
  export default { metadata, tool, handler };
23
30
  //# sourceMappingURL=list-providers-fax.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-providers-fax.mjs","sourceRoot":"","sources":["../../src/tools/fax/list-providers-fax.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,mBAAmB,EAAE,MAAM,+BAA+B;AAMnE,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,kBAAkB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,uEAAuE;IACpF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAgB,EAAE,IAAyC,EAAE,EAAE;IAC3F,OAAO,mBAAmB,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"list-providers-fax.mjs","sourceRoot":"","sources":["../../src/tools/fax/list-providers-fax.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE,MAAM,6BAA6B;OAClD,EAAE,mBAAmB,EAAE,MAAM,+BAA+B;AAMnE,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,kBAAkB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,m8BAAm8B;IACr8B,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,WAAW,EACT,kWAAkW;aACrW;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAgB,EAAE,IAAyC,EAAE,EAAE;IAC3F,OAAO,mBAAmB,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC;AAEF,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"retrieve-status-fax.d.mts","sourceRoot":"","sources":["../../src/tools/fax/retrieve-status-fax.ts"],"names":[],"mappings":"OAIO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAWlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAGxF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAKzF,wBAA2C"}
1
+ {"version":3,"file":"retrieve-status-fax.d.mts","sourceRoot":"","sources":["../../src/tools/fax/retrieve-status-fax.ts"],"names":[],"mappings":"OAKO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAkBlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAGxF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAKzF,wBAA2C"}
@@ -1 +1 @@
1
- {"version":3,"file":"retrieve-status-fax.d.ts","sourceRoot":"","sources":["../../src/tools/fax/retrieve-status-fax.ts"],"names":[],"mappings":"OAIO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAWlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAGxF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAKzF,wBAA2C"}
1
+ {"version":3,"file":"retrieve-status-fax.d.ts","sourceRoot":"","sources":["../../src/tools/fax/retrieve-status-fax.ts"],"names":[],"mappings":"OAKO,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,KAAK,EAAE,QAAQ,EAAE;OACjB,QAAQ,MAAM,eAAe;AAEpC,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAkBlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,oEAGxF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,QAAQ,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAKzF,wBAA2C"}