Skip to content

Commit fbab4d0

Browse files
feat: add mcp server (#142)
Generated from latest speakeasy CLI. You may want to do a major version bump on your SDK before releasing this with the response format change - switches `responseFormat: flat` - switches `moduleFormat: dual` - small hooks import changes to support dual module format **With the change to response format I believe some of the custom tests may need to be modified** --------- Co-authored-by: Austin Walker <awalk89@gmail.com>
1 parent a5579b4 commit fbab4d0

33 files changed

+5202
-213
lines changed

.speakeasy/gen.lock

+16-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ management:
55
docVersion: 1.0.81
66
speakeasyVersion: 1.517.3
77
generationVersion: 2.548.6
8-
releaseVersion: 0.21.1
9-
configChecksum: e65806695f558e569e7327b62f146277
8+
releaseVersion: 0.22.1
9+
configChecksum: 2cebaaef5f17f81677d245e1b6606f99
1010
repoURL: https://github.com/Unstructured-IO/unstructured-js-client.git
1111
repoSubDirectory: .
1212
installationURL: https://github.com/Unstructured-IO/unstructured-js-client
@@ -24,6 +24,7 @@ features:
2424
globalSecurity: 2.82.13
2525
globalSecurityCallbacks: 0.1.0
2626
globalServerURLs: 2.82.4
27+
mcpServer: 0.7.0
2728
nameOverrides: 2.81.2
2829
nullables: 0.1.1
2930
openEnums: 0.1.1
@@ -80,6 +81,19 @@ generatedFiles:
8081
- src/lib/sdks.ts
8182
- src/lib/security.ts
8283
- src/lib/url.ts
84+
- src/mcp-server/build.mts
85+
- src/mcp-server/cli.ts
86+
- src/mcp-server/cli/start/command.ts
87+
- src/mcp-server/cli/start/impl.ts
88+
- src/mcp-server/console-logger.ts
89+
- src/mcp-server/extensions.ts
90+
- src/mcp-server/mcp-server.ts
91+
- src/mcp-server/resources.ts
92+
- src/mcp-server/scopes.ts
93+
- src/mcp-server/server.ts
94+
- src/mcp-server/shared.ts
95+
- src/mcp-server/tools.ts
96+
- src/mcp-server/tools/generalPartition.ts
8397
- src/sdk/general.ts
8498
- src/sdk/index.ts
8599
- src/sdk/models/errors/httpclienterrors.ts

.speakeasy/workflow.lock

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@ speakeasyVersion: 1.517.3
22
sources:
33
my-source:
44
sourceNamespace: my-source
5-
sourceRevisionDigest: sha256:5c2f4c4260daeae651dff81c9ec543cf04f8652ee4731c54363766ad6101cb9a
5+
sourceRevisionDigest: sha256:9e9f4ecb34f6a07b353e1209254ed5fca4b14fa19b7117d4d9c263c8160cf1cf
66
sourceBlobDigest: sha256:822e38da0c61b9aeaa5446413a6cec058a464920a02d20d9ee7955c827446050
77
tags:
88
- latest
9-
- speakeasy-sdk-regen-1741912135
109
- 1.0.81
1110
targets:
1211
unstructed-typescript:
1312
source: my-source
1413
sourceNamespace: my-source
15-
sourceRevisionDigest: sha256:5c2f4c4260daeae651dff81c9ec543cf04f8652ee4731c54363766ad6101cb9a
14+
sourceRevisionDigest: sha256:9e9f4ecb34f6a07b353e1209254ed5fca4b14fa19b7117d4d9c263c8160cf1cf
1615
sourceBlobDigest: sha256:822e38da0c61b9aeaa5446413a6cec058a464920a02d20d9ee7955c827446050
1716
codeSamplesNamespace: my-source-typescript-code-samples
18-
codeSamplesRevisionDigest: sha256:3091e64d53d2b0729ef230c5abcccf9f7fe0058c0b30ee15342eb55047902e18
17+
codeSamplesRevisionDigest: sha256:4d09779f82fdbd1876eb140badbe39203ed5dc68f2104e7a383e1c3ce77ef820
1918
workflow:
2019
workflowVersion: 1.0.0
2120
speakeasyVersion: latest

README.md

+50
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,56 @@ npm install unstructured-client --include=dev
3131
```bash
3232
yarn add unstructured-client --dev
3333
```
34+
35+
### Model Context Protocol (MCP) Server
36+
37+
This SDK is also an installable MCP server where the various SDK methods are
38+
exposed as tools that can be invoked by AI applications.
39+
40+
> Node.js v20 or greater is required to run the MCP server.
41+
42+
<details>
43+
<summary>Claude installation steps</summary>
44+
45+
Add the following server definition to your `claude_desktop_config.json` file:
46+
47+
```json
48+
{
49+
"mcpServers": {
50+
"Unstructured": {
51+
"command": "npx",
52+
"args": [
53+
"-y", "--package", "unstructured-client",
54+
"--",
55+
"mcp", "start",
56+
]
57+
}
58+
}
59+
}
60+
```
61+
62+
</details>
63+
64+
<details>
65+
<summary>Cursor installation steps</summary>
66+
67+
Go to `Cursor Settings > Features > MCP Servers > Add new MCP server` and use the following settings:
68+
69+
- Name: Unstructured
70+
- Type: `command`
71+
- Command:
72+
```sh
73+
npx -y --package unstructured-client -- mcp start
74+
```
75+
76+
</details>
77+
78+
For a full list of server arguments, run:
79+
80+
```sh
81+
npx -y --package unstructured-client -- mcp start --help
82+
```
83+
3484
<!-- No SDK Installation -->
3585

3686
## SDK Example Usage

docs/sdk/models/errors/detail.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
const value: shared.ValidationError[] = [
1010
{
1111
loc: [
12-
544883,
12+
715190,
1313
],
1414
msg: "<value>",
1515
type: "<value>",
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,32 @@
11
# PartitionResponse
22

3-
## Example Usage
3+
4+
## Supported Types
5+
6+
### `string`
47

58
```typescript
6-
import { PartitionResponse } from "unstructured-client/sdk/models/operations";
9+
const value: string = "<value>";
10+
```
711

8-
let value: PartitionResponse = {
9-
contentType: "<value>",
10-
statusCode: 306,
11-
rawResponse: new Response("{\"message\": \"hello world\"}", {
12-
headers: { "Content-Type": "application/json" },
13-
}),
14-
elements: [
15-
{
16-
"type": "Title",
17-
"element_id": "6aa0ff22f91bbe7e26e8e25ca8052acd",
18-
"text":
19-
"LayoutParser: A Unified Toolkit for Deep Learning Based Document Image Analysis",
20-
"metadata": {
21-
"languages": [
22-
"eng",
23-
],
24-
"page_number": 1,
25-
"filename": "layout-parser-paper.pdf",
26-
"filetype": "application/pdf",
27-
},
12+
### `{ [k: string]: any }[]`
13+
14+
```typescript
15+
const value: { [k: string]: any }[] = [
16+
{
17+
"type": "Title",
18+
"element_id": "6aa0ff22f91bbe7e26e8e25ca8052acd",
19+
"text":
20+
"LayoutParser: A Unified Toolkit for Deep Learning Based Document Image Analysis",
21+
"metadata": {
22+
"languages": [
23+
"eng",
24+
],
25+
"page_number": 1,
26+
"filename": "layout-parser-paper.pdf",
27+
"filetype": "application/pdf",
2828
},
29-
],
30-
};
29+
},
30+
];
3131
```
3232

33-
## Fields
34-
35-
| Field | Type | Required | Description |
36-
| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
37-
| `contentType` | *string* | :heavy_check_mark: | HTTP response content type for this operation |
38-
| `statusCode` | *number* | :heavy_check_mark: | HTTP response status code for this operation |
39-
| `rawResponse` | [Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
40-
| `csvElements` | *string* | :heavy_minus_sign: | Successful Response |
41-
| `elements` | Record<string, *any*>[] | :heavy_minus_sign: | Successful Response |

docs/sdk/models/shared/loc.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ const value: string = "<value>";
1212
### `number`
1313

1414
```typescript
15-
const value: number = 423655;
15+
const value: number = 602763;
1616
```
1717

docs/sdk/models/shared/strategy.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ The strategy to use for partitioning PDF/image. Options are fast, hi_res, auto.
77
```typescript
88
import { Strategy } from "unstructured-client/sdk/models/shared";
99

10-
let value: Strategy = Strategy.Vlm;
10+
let value: Strategy = Strategy.HiRes;
1111
```
1212

1313
## Values

docs/sdk/models/shared/validationerror.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { ValidationError } from "unstructured-client/sdk/models/shared";
77

88
let value: ValidationError = {
99
loc: [
10-
437587,
10+
423655,
1111
],
1212
msg: "<value>",
1313
type: "<value>",

gen.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ generation:
1212
oAuth2ClientCredentialsEnabled: false
1313
oAuth2PasswordEnabled: false
1414
typescript:
15-
version: 0.21.1
15+
version: 0.22.0
1616
additionalDependencies:
1717
dependencies:
1818
async: ^3.2.5
@@ -44,9 +44,9 @@ typescript:
4444
license: MIT
4545
maxMethodParams: 0
4646
methodArguments: require-security-and-request
47-
moduleFormat: commonjs
47+
moduleFormat: dual
4848
outputModelSuffix: output
4949
packageName: unstructured-client
50-
responseFormat: envelope
50+
responseFormat: flat
5151
templateVersion: v2
5252
useIndexModules: true

jsr.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
{
44
"name": "unstructured-client",
5-
"version": "0.21.1",
5+
"version": "0.22.1",
66
"exports": {
77
".": "./src/index.ts",
88
"./sdk/models/errors": "./src/sdk/models/errors/index.ts",

0 commit comments

Comments
 (0)