About Better MCP Client
Better MCP Client is an MCP server published by WLowe10 in the Developer Tools category: typescript MCP client implementation. It has been installed 0 times through Conduid.
The repository has 1 stars and 0 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 (0) before depending on it in production.
Install
npx better-mcp-clientThis 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 Better MCP Client
Powered by Claude · Grounded in docs
Security checks
- ·README presentNot checked yet.
- ·License declaredNot checked yet.
- ·Tests presentNot checked yet.
- ·Dependencies pinnedNot checked yet.
- ·No dynamic code executionNot checked yet.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
better-mcp-client
This library is a TypeScript client implementation for the Model Context Protocol (MCP).
What makes this client the best?
- lightweight
- works in any runtime (browser, node, etc)
- separation of stateless and stateful client features
Why not use @modelcontextprotocol/sdk
As of 2025-08-12, there are multiple reasons to use better-mcp-client over @modelcontextprotocol/sdk
@modelcontextprotocol/sdkutilizes exports that may not work with module resolution@modelcontextprotocol/sdkdepends on node
Get started
Install
pnpm add better-mcp-client
# or
yarn add better-mcp-client
# or
npm install better-mcp-client
Examples
Over HTTP
import { Client } from "better-mcp-client";
import { HttpTransport, FetchAdapter } "better-mcp-client/http"
const transport = new HttpTransport({
adapter: new FetchAdapter(),
url: "http://localhost:8000/mcp",
});
const client = new Client({
info: {
name: "my-mcp-client",
version: "0.0.1",
},
transport,
});
// initialize client
const initializeResult = await client.initialize();
const sessionId = initializeResult.meta.sessionId;
// list tools
await client.listTools(
{},
{
sessionId,
}
);
Over stdio
import { Client } from "better-mcp-client";
import { StdioTransport } "better-mcp-client/stdio"
const transport = new StdioTransport({
command: "node",
args: ["./dist/main.js"]
});
const client = new Client({
info: {
name: "my-mcp-client",
version: "0.0.1",
},
transport,
});
// start the process
transport.start();
// initialize client
const initializeResult = await client.initialize();
// list tools
await client.listTools();
Session
Session is a wrapper around Client that automatically manages the mcp-session-id and requestId.
const transport = new HttpTransport({
adapter: new FetchAdapter(),
url: "http://localhost:8000/mcp",
});
const client = new Client({
info: {
name: "my-mcp-client",
version: "0.0.1",
},
transport,
});
const session = new Session({
client,
});
await session.initialize();
// no need to pass around the session id anymore :)
await client.listTools();
README mirrored from the source repository 3 months ago. The original is authoritative.