# @inkeep/agents-mcp

Model Context Protocol (MCP) Server for the *@inkeep/agents-mcp* API.

[![Built by Speakeasy](https://img.shields.io/badge/Built_by-SPEAKEASY-374151?style=for-the-badge&labelColor=f3f4f6)](https://www.speakeasy.com/?utm_source=@inkeep/agents-mcp&utm_campaign=mcp-typescript)
[![License: MIT](https://img.shields.io/badge/LICENSE_//_MIT-3b5bdb?style=for-the-badge&labelColor=eff6ff)](https://opensource.org/licenses/MIT)


<br /><br />
> [!IMPORTANT]
> This MCP Server is not yet ready for production use. To complete setup please follow the steps outlined in your [workspace](https://app.speakeasy.com/org/inkeep/inkeep). Delete this notice before publishing to a package manager.

<!-- Start Summary [summary] -->
## Summary

Inkeep Agents API: REST API for the Inkeep Agent Framework.
<!-- End Summary [summary] -->

<!-- Start Table of Contents [toc] -->
## Table of Contents
<!-- $toc-max-depth=2 -->
* [@inkeep/agents-mcp](#inkeepagents-mcp)
  * [Installation](#installation)
  * [Development](#development)
  * [Publishing to Anthropic MCP Registry](#publishing-to-anthropic-mcp-registry)
  * [Contributions](#contributions)

<!-- End Table of Contents [toc] -->

<!-- Start Installation [installation] -->
## Installation

> [!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>

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

Simply drag and drop the [`mcp-server.mcpb`](./mcp-server.mcpb) file onto Claude Desktop to install the extension.

The MCP bundle package includes the MCP server and all necessary configuration. Once installed, the server will be available without additional setup.

> [!NOTE]
> MCP bundles provide a streamlined way to package and distribute MCP servers. Learn more about [Desktop Extensions](https://www.anthropic.com/engineering/desktop-extensions).

</details>

<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=)

Or manually:

1. Open Cursor Settings
2. Select Tools and Integrations
3. Select New MCP Server
4. If the configuration file is empty paste the following JSON into the MCP Server Configuration:

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

</details>

<details>
<summary>Claude Code CLI</summary>

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

</details>
<details>
<summary>Windsurf</summary>

Refer to [Official Windsurf documentation](https://docs.windsurf.com/windsurf/cascade/mcp#adding-a-new-mcp-plugin) for latest information

1. Open Windsurf Settings
2. Select Cascade on left side menu
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
```
{
  "mcpServers": {
    "InkeepAgents": {
      "command": "npx",
      "args": [
        "@inkeep/agents-mcp",
        "start",
        "--cookie-auth",
        "...",
        "--bearer-auth",
        "..."
      ]
    }
  }
}
```
</details>
<details>
<summary>VS Code</summary>

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
{
  "mcpServers": {
    "InkeepAgents": {
      "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 ...
```

For a full list of server arguments, run:

```
npx @inkeep/agents-mcp --help
```

</details>
<!-- End Installation [installation] -->

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

## Development

Run locally without a published npm package:
1. Clone this repository
2. Run `npm install`
3. Run `npm run build`
4. Run `node ./bin/mcp-server.js start --cookie-auth ... --bearer-auth ...`
To use this local version with Cursor, Claude or other MCP Clients, you'll need to add the following config:

```json
{
  "mcpServers": {
    "InkeepAgents": {
      "command": "node",
      "args": [
        "./bin/mcp-server.js",
        "start",
        "--cookie-auth",
        "...",
        "--bearer-auth",
        "..."
      ]
    }
  }
}
```

Or to debug the MCP server locally, use the official MCP Inspector: 

```bash
npx @modelcontextprotocol/inspector node ./bin/mcp-server.js start --cookie-auth ... --bearer-auth ...
```



## Publishing to Anthropic MCP Registry

To publish your MCP server to the [Anthropic MCP Registry](https://github.com/modelcontextprotocol/registry), follow these steps based on the [official publishing guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/guides/publishing/publish-server.md).

### Step 1: Configure mcpName in Your Generation Config

Add the `mcpName` field to your `.speakeasy/gen.yaml` file:

```yaml
mcp-typescript:
  mcpName: io.github.username/server-name  # Use reverse-DNS format
  # ... other configuration
```

The `mcpName` should follow the reverse-DNS format (e.g., `io.github.username/server-name`) to ensure uniqueness in the registry.

### Step 2: Regenerate Your MCP Server

Run Speakeasy generation with the updated configuration. This will:
- Add the `mcpName` field to your `package.json` (required for npm package validation)
- Generate a `server.json` file with registry metadata

### Step 3: Publish to npm

The registry validates npm packages by checking that your published package includes the `mcpName` field:

```bash
npm publish
```

The registry will fetch your package from npm and verify that the `mcpName` in `package.json` matches your server name.

### Step 4: Install the Publisher CLI

Install the `mcp-publisher` CLI tool:

**macOS/Linux (Homebrew)**:
```bash
brew install mcp-publisher
```

**macOS/Linux/WSL (curl)**:
```bash
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher && sudo mv mcp-publisher /usr/local/bin/
```

**Windows PowerShell**:
```powershell
$arch = if ([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture -eq "Arm64") { "arm64" } else { "amd64" }
Invoke-WebRequest -Uri "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_windows_$arch.tar.gz" -OutFile "mcp-publisher.tar.gz"
tar xf mcp-publisher.tar.gz mcp-publisher.exe
rm mcp-publisher.tar.gz
# Move mcp-publisher.exe to a directory in your PATH
```

### Step 5: Authenticate

Authenticate based on your namespace:

**For `io.github.*` namespaces (GitHub OAuth)**:
```bash
mcp-publisher login github
```

**For custom domains like `com.yourcompany.*` (DNS authentication)**:
```bash
# Generate keypair
openssl genpkey -algorithm Ed25519 -out key.pem

# Get public key for DNS record
echo "yourcompany.com. IN TXT \"v=MCPv1; k=ed25519; p=$(openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64)\""

# Add the TXT record to your DNS, then login
mcp-publisher login dns --domain yourcompany.com --private-key $(openssl pkey -in key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n')
```

### Step 6: Publish to the Registry

From your server directory, publish to the registry:

```bash
mcp-publisher publish
```

You'll see:
```
✓ Successfully published
```

### Step 7: Verify Publication

Check that your server appears in the registry:

```bash
curl "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.username/server-name"
```

For complete documentation including remote deployments, troubleshooting, and CI/CD automation, see the [official publishing guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/guides/publishing/publish-server.md).

## Contributions

While we value contributions to this MCP Server, the code is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation. 
We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release. 

### MCP Server Created by [Speakeasy](https://www.speakeasy.com/?utm_source=@inkeep/agents-mcp&utm_campaign=mcp-typescript)
