Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
5cb1499
fix(mcp): pass base url to code tool
stainless-app[bot] Dec 18, 2025
5aa93e0
chore(mcp)!: remove deprecated tool schemes
stainless-app[bot] Dec 19, 2025
f7fb438
chore(internal): codegen related update
stainless-app[bot] Jan 6, 2026
b84e864
docs: prominently feature MCP server setup in root SDK readmes
stainless-app[bot] Jan 6, 2026
91fb24c
chore(internal): fix dockerfile
stainless-app[bot] Jan 6, 2026
b3e2519
fix(mcp): correct code tool api output types
stainless-app[bot] Jan 6, 2026
fd4370d
chore: break long lines in snippets into multiline
stainless-app[bot] Jan 7, 2026
918c00b
fix(mcp): fix options parsing
stainless-app[bot] Jan 7, 2026
7741041
fix(mcp): fix env parsing
stainless-app[bot] Jan 8, 2026
3dd3bf4
fix(mcp): update code tool prompt
stainless-app[bot] Jan 9, 2026
63de763
codegen metadata
stainless-app[bot] Jan 9, 2026
c693c35
chore(internal): codegen related update
stainless-app[bot] Jan 12, 2026
b754f1f
chore(internal): codegen related update
stainless-app[bot] Jan 12, 2026
84d8505
feat(api): api update
stainless-app[bot] Jan 12, 2026
beaee3f
chore(internal): codegen related update
stainless-app[bot] Jan 13, 2026
4ddb1fb
chore(internal): codegen related update
stainless-app[bot] Jan 13, 2026
13cfe77
codegen metadata
stainless-app[bot] Jan 13, 2026
7b8beab
chore: fix typo in descriptions
stainless-app[bot] Jan 14, 2026
526ebc1
chore(mcp): upgrade dependencies
stainless-app[bot] Jan 15, 2026
b6a908e
chore(mcp): add intent param to execute tool
stainless-app[bot] Jan 15, 2026
ed7d524
chore(mcp): pass intent param to execute handler
stainless-app[bot] Jan 15, 2026
c8b8f57
chore(internal): upgrade babel, qs, js-yaml
stainless-app[bot] Jan 15, 2026
7ea5945
codegen metadata
stainless-app[bot] Jan 16, 2026
f8ecbf0
feat(api): manual updates
stainless-app[bot] Jan 16, 2026
cd2c1e8
release: 0.30.0
stainless-app[bot] Jan 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.29.0"
".": "0.30.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-fc4ab722e6762cc69d533f57bea0d70b00e44a30c4ad8144e14ff70a1170ec7c.yml
openapi_spec_hash: 2533ea676c195d5f7d30a67c201fd32d
config_hash: b32e7b67898ff493ca749cdd513ab870
configured_endpoints: 23
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-a73c73c4848db6cc0b836219f2ace7bc9f6b4611d36f9daa2158f8bd5a7d0864.yml
openapi_spec_hash: 4ef2aeca3ffe2c6e6fbca0770a69c6fb
config_hash: bd77d0b7029518c697756456d6854f07
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,50 @@
# Changelog

## 0.30.0 (2026-01-16)

Full Changelog: [v0.29.0...v0.30.0](https://github.com/hyperspell/node-sdk/compare/v0.29.0...v0.30.0)

### ⚠ BREAKING CHANGES

* **mcp:** remove deprecated tool schemes
* **mcp:** **Migration:** To migrate, simply modify the command used to invoke the MCP server. Currently, the only supported tool scheme is code mode. Now, starting the server with just `node /path/to/mcp/server` or `npx package-name` will invoke code tools: changing your command to one of these is likely all you will need to do.

### Features

* **api:** api update ([84d8505](https://github.com/hyperspell/node-sdk/commit/84d8505ddd4e272872a50ebe012e2074772565ba))
* **api:** manual updates ([f8ecbf0](https://github.com/hyperspell/node-sdk/commit/f8ecbf022b9bbd886d0f92330bf28112253036fc))


### Bug Fixes

* **mcp:** correct code tool api output types ([b3e2519](https://github.com/hyperspell/node-sdk/commit/b3e2519cd7e4163614969336dbfc52b014b5c3c1))
* **mcp:** fix env parsing ([7741041](https://github.com/hyperspell/node-sdk/commit/7741041a400221447d8d3c193d4309ef593bdd75))
* **mcp:** fix options parsing ([918c00b](https://github.com/hyperspell/node-sdk/commit/918c00b99d1a5d113162357a84fe30df1cd7f0d4))
* **mcp:** pass base url to code tool ([5cb1499](https://github.com/hyperspell/node-sdk/commit/5cb1499f5651f1fd65ff80c6ed9f231c160b0a62))
* **mcp:** update code tool prompt ([3dd3bf4](https://github.com/hyperspell/node-sdk/commit/3dd3bf40dbed106d09e8a8b3e858cc173c6cb8e0))


### Chores

* break long lines in snippets into multiline ([fd4370d](https://github.com/hyperspell/node-sdk/commit/fd4370d564345e30444e9de3ce30d1305b146c82))
* fix typo in descriptions ([7b8beab](https://github.com/hyperspell/node-sdk/commit/7b8beab39afc24f06c5b5aacc12da2153fbb0cbe))
* **internal:** codegen related update ([4ddb1fb](https://github.com/hyperspell/node-sdk/commit/4ddb1fba99894fcedb9717241d08fe86c33164c7))
* **internal:** codegen related update ([beaee3f](https://github.com/hyperspell/node-sdk/commit/beaee3fd24c50a3b40c0d6f70d63d7101af8305e))
* **internal:** codegen related update ([b754f1f](https://github.com/hyperspell/node-sdk/commit/b754f1fb7ec3a47d275cbafa1eba0ab90d3f0091))
* **internal:** codegen related update ([c693c35](https://github.com/hyperspell/node-sdk/commit/c693c35e951375c8186d0406f932fff8cd44e4c8))
* **internal:** codegen related update ([f7fb438](https://github.com/hyperspell/node-sdk/commit/f7fb438f6cbcc3110300ebba9e406f7d53804cc3))
* **internal:** fix dockerfile ([91fb24c](https://github.com/hyperspell/node-sdk/commit/91fb24cdf187a0ec47521c2dc8cbc6e6a8d23264))
* **internal:** upgrade babel, qs, js-yaml ([c8b8f57](https://github.com/hyperspell/node-sdk/commit/c8b8f57d90a8670f648439743b89910f1bfc43b2))
* **mcp:** add intent param to execute tool ([b6a908e](https://github.com/hyperspell/node-sdk/commit/b6a908ec045addd7c20a3925cb54c70140d5bb30))
* **mcp:** pass intent param to execute handler ([ed7d524](https://github.com/hyperspell/node-sdk/commit/ed7d52417949ac6e3e367f726074fffb64c03691))
* **mcp:** remove deprecated tool schemes ([5aa93e0](https://github.com/hyperspell/node-sdk/commit/5aa93e0c5b58a2023376fe6e82a91982c122fd91))
* **mcp:** upgrade dependencies ([526ebc1](https://github.com/hyperspell/node-sdk/commit/526ebc1af8780b0f754d7828899f9afea2dadc4f))


### Documentation

* prominently feature MCP server setup in root SDK readmes ([b84e864](https://github.com/hyperspell/node-sdk/commit/b84e864d022974598ce18c55c71ba7b56ba3dc70))

## 0.29.0 (2025-12-16)

Full Changelog: [v0.27.0...v0.29.0](https://github.com/hyperspell/node-sdk/compare/v0.27.0...v0.29.0)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright 2025 hyperspell
Copyright 2026 hyperspell

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

Expand Down
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,15 @@ The REST API documentation can be found on [docs.hyperspell.com](https://docs.hy

It is generated with [Stainless](https://www.stainless.com/).

## MCP Server

Use the Hyperspell MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.

[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=hyperspell-mcp&config=eyJuYW1lIjoiaHlwZXJzcGVsbC1tY3AiLCJ0cmFuc3BvcnQiOiJzc2UiLCJ1cmwiOiJodHRwczovL2h5cGVyc3BlbGwuc3RsbWNwLmNvbS9zc2UifQ)
[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22hyperspell-mcp%22%2C%22type%22%3A%22sse%22%2C%22url%22%3A%22https%3A%2F%2Fhyperspell.stlmcp.com%2Fsse%22%7D)

> Note: You may need to set environment variables in your MCP client.

## Installation

```sh
Expand Down Expand Up @@ -201,7 +210,9 @@ const response = await client.memories.add({ text: 'text' }).asResponse();
console.log(response.headers.get('X-My-Header'));
console.log(response.statusText); // access the underlying Response object

const { data: memoryStatus, response: raw } = await client.memories.add({ text: 'text' }).withResponse();
const { data: memoryStatus, response: raw } = await client.memories
.add({ text: 'text' })
.withResponse();
console.log(raw.headers.get('X-My-Header'));
console.log(memoryStatus.resource_id);
```
Expand Down
2 changes: 2 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ Types:
- <code><a href="./src/resources/memories.ts">Memory</a></code>
- <code><a href="./src/resources/memories.ts">MemoryStatus</a></code>
- <code><a href="./src/resources/memories.ts">MemoryDeleteResponse</a></code>
- <code><a href="./src/resources/memories.ts">MemoryAddBulkResponse</a></code>
- <code><a href="./src/resources/memories.ts">MemoryStatusResponse</a></code>

Methods:
Expand All @@ -73,6 +74,7 @@ Methods:
- <code title="get /memories/list">client.memories.<a href="./src/resources/memories.ts">list</a>({ ...params }) -> MemoriesCursorPage</code>
- <code title="delete /memories/delete/{source}/{resource_id}">client.memories.<a href="./src/resources/memories.ts">delete</a>(resourceID, { ...params }) -> MemoryDeleteResponse</code>
- <code title="post /memories/add">client.memories.<a href="./src/resources/memories.ts">add</a>({ ...params }) -> MemoryStatus</code>
- <code title="post /memories/add/bulk">client.memories.<a href="./src/resources/memories.ts">addBulk</a>({ ...params }) -> MemoryAddBulkResponse</code>
- <code title="get /memories/get/{source}/{resource_id}">client.memories.<a href="./src/resources/memories.ts">get</a>(resourceID, { ...params }) -> Memory</code>
- <code title="post /memories/query">client.memories.<a href="./src/resources/memories.ts">search</a>({ ...params }) -> QueryResult</code>
- <code title="get /memories/status">client.memories.<a href="./src/resources/memories.ts">status</a>() -> MemoryStatusResponse</code>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hyperspell",
"version": "0.29.0",
"version": "0.30.0",
"description": "The official TypeScript library for the Hyperspell API",
"author": "Hyperspell <hello@hyperspell.com>",
"types": "dist/index.d.ts",
Expand Down
122 changes: 58 additions & 64 deletions packages/mcp-server/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,77 +1,71 @@
# Dockerfile for Hyperspell MCP Server
#
# This Dockerfile builds a Docker image for the MCP Server.
#
# To build the image locally:
# docker build -f packages/mcp-server/Dockerfile -t hyperspell-mcp:local .
#
# To run the image:
# docker run -i hyperspell-mcp:local [OPTIONS]
#
# Common options:
# --tool=<name> Include specific tools
# --resource=<name> Include tools for specific resources
# --operation=read|write Filter by operation type
# --client=<type> Set client compatibility (e.g., claude, cursor)
# --transport=<type> Set transport type (stdio or http)
#
# For a full list of options:
# docker run -i hyperspell-mcp:local --help
#
# Note: The MCP server uses stdio transport by default. Docker's -i flag
# enables interactive mode, allowing the container to communicate over stdin/stdout.

# Build stage
FROM node:20-alpine AS builder

# Install bash for build script
RUN apk add --no-cache bash openssl

# Set working directory
WORKDIR /build

# Copy entire repository
COPY . .

# Install all dependencies and build everything
RUN yarn install --frozen-lockfile && \
yarn build

# Production stage

FROM denoland/deno:alpine
RUN apk add --no-cache npm

# Add non-root user
RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001

# Set working directory
WORKDIR /app
#
# This Dockerfile builds a Docker image for the MCP Server.
#
# To build the image locally:
# docker build -f packages/mcp-server/Dockerfile -t hyperspell-mcp:local .
#
# To run the image:
# docker run -i hyperspell-mcp:local [OPTIONS]
#
# Common options:
# --tool=<name> Include specific tools
# --resource=<name> Include tools for specific resources
# --operation=read|write Filter by operation type
# --client=<type> Set client compatibility (e.g., claude, cursor)
# --transport=<type> Set transport type (stdio or http)
#
# For a full list of options:
# docker run -i hyperspell-mcp:local --help
#
# Note: The MCP server uses stdio transport by default. Docker's -i flag
# enables interactive mode, allowing the container to communicate over stdin/stdout.

# Build stage
FROM node:20-alpine AS builder

# Install bash for build script
RUN apk add --no-cache bash openssl

# Set working directory
WORKDIR /build

# Copy entire repository
COPY . .

# Install all dependencies and build everything
RUN yarn install --frozen-lockfile && \
yarn build

# Production stage
FROM node:20-alpine

# Add non-root user
RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001

# Set working directory
WORKDIR /app

# Copy the built mcp-server dist directory
COPY --from=builder /build/packages/mcp-server/dist ./

# Copy node_modules from mcp-server (includes all production deps)
COPY --from=builder /build/packages/mcp-server/node_modules ./node_modules

# Copy the built hyperspell into node_modules
COPY --from=builder /build/dist ./node_modules/hyperspell
# Copy the built hyperspell into node_modules
COPY --from=builder /build/dist ./node_modules/hyperspell

# Change ownership to nodejs user
RUN chown -R nodejs:nodejs /app
# Change ownership to nodejs user
RUN chown -R nodejs:nodejs /app

# Switch to non-root user
USER nodejs
# Switch to non-root user
USER nodejs

# The MCP server uses stdio transport by default
# No exposed ports needed for stdio communication
# The MCP server uses stdio transport by default
# No exposed ports needed for stdio communication

# This is needed for node to run on the deno:alpine image.
# See <https://github.com/denoland/deno_docker/issues/373>.
ENV LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
# Set the entrypoint to the MCP server
ENTRYPOINT ["node", "index.js"]

# Set the entrypoint to the MCP server
ENTRYPOINT ["node", "index.js"]

# Allow passing arguments to the MCP server
CMD []
# Allow passing arguments to the MCP server
CMD []
Loading