1. Conduid
  2. Developer Tools
  3. Link
MCP server · Developer Tools

Link

MCP server: Link

Unclaimed Apache-2.0 last commit a year ago devtools
45Fair

Scored 5 months ago · breakdown

About Link

Link is an MCP server published by TeamSparkAI in the Developer Tools category: mCP server: Link.

The repository has 5 stars and 2 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/TeamSparkAI/mcp-link

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Link

Powered by Claude · Grounded in docs

I know everything about Link. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository yesterday. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

MCP Link

MCP Link is a bridge that allows you to present any MCP server endpoint (stdio, sse, or streamable), and bridge it to any other server endpoint (stdio, sse, streamable, or a container).

When the target MCP server is stdio-container, an ephemeral Docker container will be spun up per MCP session and removed at the end of the session.

MCP Link

MCP Link is available both as a command line app and as an SDK that allows you to build your own MCP Link solutions, including the ability to process all messages going to and from the linked MCP servers.

Prerequisites

  • Node.js (v14 or higher)
  • npm

Installation

Using npm

To use MCP Link from anywhere in your system:

npm install -g mcp-link

Or to use it in your project:

npm install mcp-link

Usage

mcplink [options]

Options

Option Description Default
--serverMode <mode> Server mode (sse, stdio, streamable) "stdio"
--clientMode <mode> Client mode (stdio, sse, streamable, stdio-container) "stdio-container"
--port <number> Server port "3000"
--host <string> Server host "localhost"
--image <string> Client container image -
--endpoint <string> Client endpoint -
--command <string> Client command -
--env <value> Environment variable (key=value) []
--volume <value> Volume mapping []
-h, --help Display help for command -

Examples

# Run with stdio server and container client
mcplink --serverMode=stdio --clientMode=stdio-container --image=mcp/fetch

# Run with stdio server and container client (leveraging defaults)
mcplink --image=mcp/fetch

# Run with SSE server on custom port
mcplink --serverMode=sse --port=8080 --image=mcp/fetch

# Run with streamable server and stdio client
mcplink --serverMode=streamable --clientMode=stdio --command=npx mcp-fetch

Important Note for stdio Server Mode: You can use the above command lines directly in your MCP using tool (your IDE). When the LLM connects to the mcplink MCP server, it will automatically be bridged to the linked MCP server.

Source-Target Permutations

Verified Source Mode Target Mode Description
✅ stdio stdio Direct stdio to stdio bridge
✅ stdio sse Bridge stdio source to SSE endpoint
✅ stdio streamable Bridge stdio source to streamable endpoint
✅ stdio stdio-container Bridge stdio source to containerized stdio endpoint
✅ sse stdio Bridge SSE source to stdio endpoint
✅ sse sse Direct SSE to SSE bridge
✅ sse streamable Bridge SSE source to streamable endpoint
✅ sse stdio-container Bridge SSE source to containerized stdio endpoint
✅ streamable stdio Bridge streamable source to stdio endpoint
✅ streamable sse Bridge streamable source to SSE endpoint
✅ streamable streamable Direct streamable to streamable bridge
✅ streamable stdio-container Bridge streamable source to containerized stdio endpoint

Development

This project uses Node.js and is implemented in TypeScript. It uses the Commander package for CLI functionality and Dockerode for container management.

Building and Running Locally

If you want to build and run from source:

# Clone the repository
git clone https://github.com/TeamSparkAI/mcp-link.git
cd mcp-link

# Install dependencies
npm install

# Build the project
npm run build

# Run without installation
npm start -- [options]

MCP Link SDK

MCP Link also exposes an SDK that will allow you to create your own apps that provide MCP Link functionality.

Installation

In your project directory:

# Install and save to your project's dependencies
npm install mcp-link --save

Usage

import { startBridge } from 'mcp-link';

// Start a bridge with the specified configuration
const bridge = await startBridge({
  serverMode: 'stdio',  // or 'sse', 'streamable'
  clientMode: 'stdio-container',  // or 'stdio', 'sse', 'streamable'
  port: 3000,  // optional, defaults to 3000
  host: 'localhost',  // optional, defaults to 'localhost'
  image: 'mcp/fetch',  // required for stdio-container mode
  endpoint: 'http://localhost:8080',  // optional, for sse/streamable modes
  command: 'npx mcp-fetch',  // optional, for stdio mode
  env: ['KEY=value'],  // optional, environment variables
  volume: ['/host/path:/container/path']  // optional, volume mappings
});

// The bridge will run until you stop it
// To stop the bridge:
await bridge.stop();

The SDK provides a programmatic interface to all the functionality available through the CLI. You can use it to create custom applications that need to bridge different MCP endpoints.

Message Processing

You can process messages as they flow through the bridge by providing a message processor:

import { startBridge } from 'mcp-link';
import { JSONRPCMessage } from '@modelcontextprotocol/sdk/types';

const bridge = await startBridge({
  serverMode: 'stdio',
  clientMode: 'stdio-container',
  image: 'mcp/fetch',
  // Add a message processor to handle messages in both directions
  messageProcessor: {
    // Process messages going to the server
    forwardMessageToServer: async (message: JSONRPCMessage) => {
      console.log('[MessageProcessor] Forwarding message to server', message);
      return message;
    },
    // Process messages returning to the client
    returnMessageToClient: async (message: JSONRPCMessage) => {
      console.log('[MessageProcessor] Returning message to client', message);
      return message;
    }
  }
});

// The bridge will run until you stop it
await bridge.stop();

The message processor allows you to:

  • Process messages in both directions (to server and to client)
  • Log messages for debugging
  • Transform message content
  • Filter messages
  • Add custom processing logic

License

Apache-2.0

README fetched from the repository yesterday. The original is authoritative.

Questions

About Link

How do I install Link?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Link safe to use with an AI agent?

Its trust score is 45 out of 100 (fair). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Link still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.