Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .changeset/brave-mcp-regen.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@inkeep/agents-mcp": patch
---

Regenerate MCP server from latest OpenAPI spec with pnpm monorepo compatibility fixes
1 change: 1 addition & 0 deletions packages/agents-mcp/.genignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
package.json
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is correct — prevents Speakeasy from overwriting the manually-managed package.json with its own template that lacks the pnpm-specific adjustments. However, this means future dependency additions from Speakeasy regeneration (e.g., if a new SDK feature requires a new package) will need manual intervention. Consider documenting this in a comment or the README's generation instructions so future regenerators know to diff the generated package.json against the existing one.

5 changes: 4 additions & 1 deletion packages/agents-mcp/.npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
!/**/*.ts
!/**/*.js
!/**/*.mjs
!/**/*.json
!/package.json
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The narrowing from !/**/*.json to explicit paths is correct — manifest.json is build-time only (used by build.mts and mcpb:build), not needed by npm consumers. The !/jsr.json pattern is a no-op since jsr.json doesn't exist in this package. The !/dist/**/*.json and !/esm/**/*.json patterns are also currently no-ops (tsc doesn't emit JSON files with the current tsconfig.json), but they're reasonable future-proofing.

!/jsr.json
!/dist/**/*.json
!/esm/**/*.json
!/**/*.map

/eslint.config.mjs
Expand Down
6,520 changes: 4,518 additions & 2,002 deletions packages/agents-mcp/.speakeasy/gen.lock

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions packages/agents-mcp/.speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ generation:
securityFeb2025: true
sharedErrorComponentsApr2025: true
sharedNestedComponentsJan2026: true
nameOverrideFeb2026: false
auth:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: true
Expand All @@ -23,6 +24,7 @@ generation:
schemas:
allOfMergeStrategy: shallowMerge
requestBodyFieldName: body
versioningStrategy: automatic
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💭 Consider: versioningStrategy: automatic interaction with .genignore

Issue: The versioningStrategy: automatic setting was added, but package.json is now in .genignore, meaning Speakeasy cannot update the version field.

Why: This may cause version drift between what Speakeasy expects and what's in the manually-managed package.json. Since version bumps are handled via changesets in this monorepo, this setting may be harmless—but the interaction should be verified.

Fix: Consider removing versioningStrategy: automatic since versioning is handled via changesets and package.json is protected by .genignore. Alternatively, verify with Speakeasy docs that this combination works as expected.

Refs:

persistentEdits:
enabled: "true"
tests:
Expand Down Expand Up @@ -50,3 +52,4 @@ mcp-typescript:
outputModelSuffix: output
packageName: '@inkeep/agents-mcp'
responseFormat: envelope
validateResponse: false
2 changes: 1 addition & 1 deletion packages/agents-mcp/.speakeasy/out.openapi.yaml

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions packages/agents-mcp/.speakeasy/workflow.lock
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
speakeasyVersion: 1.698.0
speakeasyVersion: 1.757.1
sources:
Inkeep Agents API:
sourceNamespace: inkeep-agents-api
sourceRevisionDigest: sha256:e3138b30fecffc27766e8d47a51b5c8a97fcf2cadd7b52b829e04d07a1ebde97
sourceBlobDigest: sha256:c2182fa831c6edf19cea8663ffc60901348f5d43256be8b50503a36965705cda
sourceRevisionDigest: sha256:02795cb345d1a1f32de5b69bf3009f439d92845cb8087b2e2e4900d44ea7fa0d
sourceBlobDigest: sha256:f8336302f9f55083f4fa5e2e8c4f6a6dad538a53681f93f68fd81ab309871ac5
tags:
- latest
- 1.0.0
targets:
inkeep-agents:
source: Inkeep Agents API
sourceNamespace: inkeep-agents-api
sourceRevisionDigest: sha256:e3138b30fecffc27766e8d47a51b5c8a97fcf2cadd7b52b829e04d07a1ebde97
sourceBlobDigest: sha256:c2182fa831c6edf19cea8663ffc60901348f5d43256be8b50503a36965705cda
sourceRevisionDigest: sha256:02795cb345d1a1f32de5b69bf3009f439d92845cb8087b2e2e4900d44ea7fa0d
sourceBlobDigest: sha256:f8336302f9f55083f4fa5e2e8c4f6a6dad538a53681f93f68fd81ab309871ac5
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
Expand Down
152 changes: 75 additions & 77 deletions packages/agents-mcp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Inkeep Agents API: REST API for the Inkeep Agent Framework.
<!-- $toc-max-depth=2 -->
* [@inkeep/agents-mcp](#inkeepagents-mcp)
* [Installation](#installation)
* [Progressive Discovery](#progressive-discovery)
* [Development](#development)
* [Publishing to Anthropic MCP Registry](#publishing-to-anthropic-mcp-registry)
* [Contributions](#contributions)
Expand All @@ -33,7 +34,7 @@ Inkeep Agents API: REST API for the Inkeep Agent Framework.
> [!TIP]
> To finish publishing your MCP Server to npm and others you must [run your first generation action](https://www.speakeasy.com/docs/github-setup#step-by-step-guide).
<details>
<summary>MCP Bundle (Desktop Extension)</summary>
<summary>Claude Desktop</summary>

Install the MCP server as a Desktop Extension using the pre-built [`mcp-server.mcpb`](./mcp-server.mcpb) file:

Expand All @@ -49,7 +50,7 @@ The MCP bundle package includes the MCP server and all necessary configuration.
<details>
<summary>Cursor</summary>

[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=InkeepAgents&config=eyJtY3BTZXJ2ZXJzIjp7Iklua2VlcEFnZW50cyI6eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyJAaW5rZWVwL2FnZW50cy1tY3AiLCJzdGFydCIsIi0tY29va2llLWF1dGgiLCIuLi4iLCItLWJlYXJlci1hdXRoIiwiLi4uIl19fX0=)
[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=InkeepAgents&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyJAaW5rZWVwL2FnZW50cy1tY3AiLCJzdGFydCIsIi0tY29va2llLWF1dGgiLCIiLCItLWJlYXJlci1hdXRoIiwiIl19)

Or manually:

Expand All @@ -60,19 +61,15 @@ Or manually:

```json
{
"mcpServers": {
"InkeepAgents": {
"command": "npx",
"args": [
"@inkeep/agents-mcp",
"start",
"--cookie-auth",
"...",
"--bearer-auth",
"..."
]
}
}
"command": "npx",
"args": [
"@inkeep/agents-mcp",
"start",
"--cookie-auth",
"",
"--bearer-auth",
""
]
}
```

Expand All @@ -82,7 +79,15 @@ Or manually:
<summary>Claude Code CLI</summary>

```bash
claude mcp add @inkeep/agents-mcp npx @inkeep/agents-mcp start -- --cookie-auth ... --bearer-auth ...
claude mcp add InkeepAgents -- npx -y @inkeep/agents-mcp start --cookie-auth --bearer-auth
```

</details>
<details>
<summary>Gemini</summary>

```bash
gemini mcp add InkeepAgents -- npx -y @inkeep/agents-mcp start --cookie-auth --bearer-auth
```

</details>
Expand All @@ -96,90 +101,55 @@ Refer to [Official Windsurf documentation](https://docs.windsurf.com/windsurf/ca
3. Click on `Manage MCPs`. (To Manage MCPs you should be signed in with a Windsurf Account)
4. Click on `View raw config` to open up the mcp configuration file.
5. If the configuration file is empty paste the full json
```

```bash
{
"mcpServers": {
"InkeepAgents": {
"command": "npx",
"args": [
"@inkeep/agents-mcp",
"start",
"--cookie-auth",
"...",
"--bearer-auth",
"..."
]
}
}
"command": "npx",
"args": [
"@inkeep/agents-mcp",
"start",
"--cookie-auth",
"",
"--bearer-auth",
""
]
}
```
</details>
<details>
<summary>VS Code</summary>

[![Install in VS Code](https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20InkeepAgents%20MCP&color=0098FF)](vscode://ms-vscode.vscode-mcp/install?name=InkeepAgents&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyJAaW5rZWVwL2FnZW50cy1tY3AiLCJzdGFydCIsIi0tY29va2llLWF1dGgiLCIiLCItLWJlYXJlci1hdXRoIiwiIl19)

Or manually:

Refer to [Official VS Code documentation](https://code.visualstudio.com/api/extension-guides/ai/mcp) for latest information

1. Open [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette)
1. Search and open `MCP: Open User Configuration`. This should open mcp.json file
2. If the configuration file is empty paste the full json
```
{
"mcpServers": {
"InkeepAgents": {
"command": "npx",
"args": [
"@inkeep/agents-mcp",
"start",
"--cookie-auth",
"...",
"--bearer-auth",
"..."
]
}
}
}
```

</details>
<details>
<summary>Claude Desktop</summary>
Claude Desktop doesn't yet support SSE/remote MCP servers.

You need to do the following
1. Open claude Desktop
2. Open left hand side pane, then click on your Username
3. Go to `Settings`
4. Go to `Developer` tab (on the left hand side)
5. Click on `Edit Config`
Paste the following config in the configuration

```json
```bash
{
"mcpServers": {
"InkeepAgents": {
"command": "npx",
"args": [
"@inkeep/agents-mcp",
"start",
"--cookie-auth",
"...",
"--bearer-auth",
"..."
]
}
}
"command": "npx",
"args": [
"@inkeep/agents-mcp",
"start",
"--cookie-auth",
"",
"--bearer-auth",
""
]
}
```

</details>


<details>
<summary> Stdio installation via npm </summary>
To start the MCP server, run:

```bash
npx @inkeep/agents-mcp start --cookie-auth ... --bearer-auth ...
npx @inkeep/agents-mcp start --cookie-auth --bearer-auth
```

For a full list of server arguments, run:
Expand All @@ -191,6 +161,34 @@ npx @inkeep/agents-mcp --help
</details>
<!-- End Installation [installation] -->

<!-- Start Progressive Discovery [dynamic-mode] -->
## Progressive Discovery

MCP servers with many tools can bloat LLM context windows, leading to increased token usage and tool confusion. Dynamic mode solves this by exposing only a small set of meta-tools that let agents progressively discover and invoke tools on demand.

To enable dynamic mode, pass the `--mode dynamic` flag when starting your server:

```jsonc
{
"mcpServers": {
"InkeepAgents": {
"command": "npx",
"args": ["@inkeep/agents-mcp", "start", "--mode", "dynamic"],
// ... other server arguments
}
}
}
```

In dynamic mode, the server registers only the following meta-tools instead of every individual tool:

- **`list_tools`**: Lists all available tools with their names and descriptions.
- **`describe_tool`**: Returns the input schema for one or more tools by name.
- **`execute_tool`**: Executes a tool by name with the provided input parameters.

This approach significantly reduces the number of tokens sent to the LLM on each request, which is especially useful for servers with a large number of tools.
<!-- End Progressive Discovery [dynamic-mode] -->

<!-- Placeholder for Future Speakeasy SDK Sections -->

## Development
Expand Down
Loading
Loading