Binance TypeScript MCP
# TypeScript MCP Project
This project implements a Model Context Protocol server using TypeScript.
## Getting Started
1. Build:
```bash
npm install
```
2. Add to `.vscode/mcp.json`:
```
{
"servers": {
"binance-ts-mcp": {
"command": "npx",
"args": [
"-y",
"/FULL_PATH_GOES_HERE/typescript_mcp"
]
}
},
"inputs": []
}
```
3. Type "what's the BTC price now" into Copilot, and you'll see it use this mcp to answer
4. Debug with ` npx @modelcontextprotocol/inspector node src/binance_mcp.ts`
5. Optionally, publish it to npmjs.com
- `npm login`
- `npm publish`
- results: https://www.npmjs.com/package/gaborb-binancemcp
- the mcp will still run locally when using npmjs, but it will be downloaded
- remotely running MCPs would mean going along the lines of https://github.com/cloudflare/ai/tree/main/demos/remote-mcp-auth0
## Tools, resources
This project has a tool that connects to the Binance API to give the price of a given crypto symbol.
MCP resources provide easy access to files, database tables, API results, e.g. this project writes MCP activity log to a file resource.
## Dependencies
- `@modelcontextprotocol/sdk`: Core MCP functionality
- `zod`: Runtime type checking
- `typescript`: Development dependency for TypeScript compilation
- `@types/node`: Type definitions for Node.js
TDQS
Scored across 2 tools
The two tools appear to serve nearly identical purposes related to price data, with 'get_price' and 'get_price_price_change' likely overlapping significantly in functionality. Without descriptions, it's impossible to distinguish their intended use cases, leading to high ambiguity and potential misselection.
Both tools use snake_case naming, which is consistent, but the naming pattern is unclear—'get_price' suggests a simple price fetch, while 'get_price_price_change' is redundant and poorly structured. The inconsistency in verb-object clarity makes the naming only moderately readable.
With only 2 tools, this server feels severely under-scoped for a Binance integration, which typically involves trading, account management, and market data beyond just price. The count is too low to cover the expected domain, making it inappropriate for comprehensive use.
The tool surface is extremely incomplete for a Binance server, lacking essential operations like placing orders, checking balances, or accessing other market data. With only price-related tools, there are significant gaps that will cause agent failures in typical cryptocurrency trading or analysis workflows.