# mcsm-mcp
English | [**中文**](docs/README_CN.md)
## Overview
`mcsm-mcp` is a lightweight **MCP (Model Context Protocol) client library** that enables your applications to communicate with MCP‑compatible servers. It supports multiple transport mechanisms – **STDIO**, **SSE**, and **Streamable HTTP** – and can be used from both **CLI** scripts and **UI** tools.
---
## Installation
```bash
git clone https://github.com/SMGoro/mcsm-mcp.git
cd mcsm-mcp
npm install
npm run build
```
The package works on Windows, macOS and Linux.
---
## Configuration & Usage
The client reads its configuration from a JSON file (default name `mcp.json`). Below are examples for the three supported transports.
### STDIO (default)
```json
{
"mcpServers": {
"my-stdio-server": {
"type": "stdio",
"command": "node",
"args": ["build/index.js", "--debug"],
"env": {
"MCSM_API_KEY": "your-api-key",
"MCSM_API_URL": "http://localhost:23333",
"DEBUG": "true"
}
}
}
}
```
### Streamable HTTP
```json
{
"mcpServers": {
"my-http-server": {
"type": "streamable-http",
"url": "http://localhost:3010/mcp?mcsm-api-key=your-api-key&mcsm-api-url=http://localhost:23333"
}
}
}
```
Save the file as `mcp.json` in your project root or specify a custom path with the `--config` flag.
---
## Testing the Client
### CLI Mode (scriptable)
The library ships with a CLI wrapper that can be invoked via `npx @modelcontextprotocol/inspector`.
```bash
# Basic usage – start a server and open the UI
npx @modelcontextprotocol/inspector node build/index.js
# CLI mode – run a single command without UI
npx @modelcontextprotocol/inspector --cli node build/index.js --method tools/list
# Using a custom config file
npx @modelcontextprotocol/inspector --cli --config ./mcp.json --server my-stdio-server
```
### UI Mode (interactive)
Running the command without `--cli` starts the **MCP Inspector UI** on `http://localhost:6274`.
```bash
npx @modelcontextprotocol/inspector node build/index.js
```
You can also launch the UI directly from an existing configuration:
```bash
npx @modelcontextprotocol/inspector --config ./mcp.json
```
The project includes a comprehensive test suite that validates each transport (STDIO, SSE, Streamable HTTP). Tests are based on the **MCP Inspector** documentation in `docs/MCPInspector_README.md`.
1. Open the Inspector UI (see *UI Mode* above).
2. In the **Servers File** panel click **"Servers File"** to copy a full configuration for the transport you want to test.
3. Save the JSON to a temporary file, e.g. `mcp-test.json`.
4. Run the CLI test command:
```bash
npx @modelcontextprotocol/inspector --cli --config ./mcp-test.json --method tools/list
```
5. Verify the output matches the expected tool list for your server.
Both GUI and CLI modes are exercised automatically by the CI pipeline.
### Project Links
- GitHub Repository: <https://github.com/SMGoro/mcsm-mcp>
- MCSManager Site: <https://mcsmanager.com/>
- Model Context Protocol: <https://modelcontextprotocol.io/>
---
## License
AGPL-3.0