1. Conduid
  2. Developer Tools
  3. sdk-client-ssejs
MCP server · Developer Tools

sdk-client-ssejs

Client transport alternative of @modelcontextprotocol/sdk/client base on sse.js. The main purpose is make it working on React Native with llama.rn.

Unclaimed last commit a year ago react-nativellama-rnmcpsdkssesse-js
39Low

Scored 22 hours ago · breakdown

About sdk-client-ssejs

sdk-client-ssejs is an MCP server published by git+mybigday in the Developer Tools category: client transport alternative of @modelcontextprotocol/sdk/client base on sse.js. The main purpose is make it working on React Native with llama.rn.

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

Install
npx mcp-sdk-client-ssejs
Claude Code
claude mcp add sdk-client-ssejs -- npx -y mcp-sdk-client-ssejs
npx
npx -y mcp-sdk-client-ssejs

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 sdk-client-ssejs

Powered by Claude · Grounded in docs

I know everything about sdk-client-ssejs. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

4 checks have not been run yet.

README

MCP SDK Client SSE.js

Actions Status npm

Client transport alternative of @modelcontextprotocol/sdk/client base on sse.js. The main purpose is make it working on React Native with llama.rn.

Supports:

  • Streamable HTTP
  • SSE

Installation

npm install @modelcontextprotocol/sdk
npm install mcp-sdk-client-ssejs
  • For use @modelcontextprotocol/sdk in React Native, you may need enable unstable_enablePackageExports: true in the project's metro config.
  • Or you can try to use babel-plugin-module-resolver to alias the @modelcontextprotocol/sdk to @modelcontextprotocol/sdk/dist/esm in babel config:
module.exports = {
  presets: [/* ... */],
  plugins: [
    // ...
    [
      'module-resolver',
      {
        alias: {
          '@modelcontextprotocol/sdk': '@modelcontextprotocol/sdk/dist/esm',
        },
      },
    ],
  ],
}

If CustomEvent is missing in the React Native environment, you may need to add a polyfill for it, you can try our approach:

import NativeCustomEvent from 'react-native/Libraries/Events/CustomEvent'

window.CustomEvent = class CustomEvent extends NativeCustomEvent {
  constructor(type, eventInitDict = {}) {
    super(type, eventInitDict)
  }
}

Usage

The usage is the most same as the original @modelcontextprotocol/sdk/client, but you need to use SSEJSStreamableHTTPClientTransport or SSEJSClientTransport instead of StreamableHTTPClientTransport or SSEClientTransport. (There are no STDIO support in this package.)

SSEJSStreamableHTTPClientTransport

import { Client } from '@modelcontextprotocol/sdk/client/index.js'
import { SSEJSStreamableHTTPClientTransport } from 'mcp-sdk-client-ssejs'

const transport = new SSEJSStreamableHTTPClientTransport(
  'http://<your-mcp-server-sse-endpoint-url>', 
  { /* TransportOptions */ },
)

const client = new Client({
  name: 'example-client',
  version: '1.0.0',
})

await client.connect(transport)

// List prompts
const prompts = await client.listPrompts()

// Get a prompt
const prompt = await client.getPrompt({
  name: 'example-prompt',
  arguments: {
    arg1: 'value',
  },
})

// List resources
const resources = await client.listResources()

// Read a resource
const resource = await client.readResource({
  uri: 'file:///example.txt',
})

// Call a tool
const result = await client.callTool({
  name: 'example-tool',
  arguments: {
    arg1: 'value',
  },
})

SSEJSClientTransport

import { Client } from '@modelcontextprotocol/sdk/client/index.js'
import { SSEJSClientTransport } from 'mcp-sdk-client-ssejs'

const transport = new SSEJSClientTransport(
  'http://<your-mcp-server-sse-endpoint-url>',
  { /* TransportOptions */ },
)

const client = new Client({
  name: 'example-client',
  version: '1.0.0',
})

await client.connect(transport)

// Usage is the same as with SSEJSStreamableHTTPClientTransport

Use fetch / URL as optional parameters

Both transport options accept URL and fetch options.

import { Client } from '@modelcontextprotocol/sdk/client/index.js'
import { SSEJSStreamableHTTPClientTransport, SSEJSClientTransport } from 'mcp-sdk-client-ssejs'

// Example: Use whatwg-url-without-unicode
import { URL } from 'whatwg-url-without-unicode'

// For SSEJSStreamableHTTPClientTransport
const streamableTransport = new SSEJSStreamableHTTPClientTransport(
  'http://<your-mcp-server-sse-endpoint-url>'
  {
    URL,
    // Example: Custom fetch implementation
    fetch: (...args) => fetch(...args),
  },
)

// Or for SSEJSClientTransport
const transport = new SSEJSClientTransport(
  'http://<your-mcp-server-sse-endpoint-url>',
  {
    URL,
    fetch: (...args) => fetch(...args),
  },
)

Use cases

  • BRICKS - Our product for building interactive signage in simple way. We provide AI functions as Generator LLM/Assistant/MCP/MCPServer.
    • The Generator MCP (Client) is based on this package.
  • llama.rn/example - llama.rn example app
    • Please see Tool Calling & MCP example.

License

MIT


README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About sdk-client-ssejs

How do I install sdk-client-ssejs?

Run npx mcp-sdk-client-ssejs, then add the server to your MCP client's configuration.

Is sdk-client-ssejs safe to use with an AI agent?

Its trust score is 39 out of 100 (low). It passes 1 of the 2 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 sdk-client-ssejs 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.