From e8789961ba334e70b002692b04170bb561dc0d4a Mon Sep 17 00:00:00 2001 From: angelraph Date: Mon, 21 Sep 2026 08:33:58 +0100 Subject: [PATCH] Document that Binance refused the MCP client The live consent step rejected CHARTER as an unsupported agent (error 3346001). Update the README to say so and to state what does and does not depend on the MCP server. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index add1cdb..aca7d3a 100644 --- a/README.md +++ b/README.md @@ -159,7 +159,7 @@ CHARTER always executes against a real order-matching engine. It never fabricate `mainnet-mcp` points at the real [Binance Agent OS MCP server](https://developers.binance.com/en/docs/agent-native/mcp-server), against a real, self-funded Agentic sub-account. It's used only where explicitly stated, with a small amount of real funds. -The MCP connection is not finished, and this is where it stands. `charter mcp probe` reads the server's public OAuth metadata (verified live: public client, PKCE S256, authorization code grant only, no dynamic registration, no refresh tokens). `charter mcp login`, `tools` and `status` implement the sign-in as the server describes it: the client identifies itself with an HTTPS URL that hosts [docs/mcp-client.json](docs/mcp-client.json), the browser consent happens on Binance's own page, and the code returns to a loopback listener that checks `state`. The flow is tested against a fake authorization server, including that the PKCE verifier matches the challenge. It has not been run against Binance's live consent page, so whether Binance accepts this client is unconfirmed. Order placement through MCP is not built; it waits on seeing the real tool schemas that `charter mcp tools` saves after a login. +The MCP connection is not finished, and this is where it stands. `charter mcp probe` reads the server's public OAuth metadata (verified live: public client, PKCE S256, authorization code grant only, no dynamic registration, no refresh tokens). `charter mcp login`, `tools` and `status` implement the sign-in as the server describes it: the client identifies itself with an HTTPS URL that hosts [docs/mcp-client.json](docs/mcp-client.json), the browser consent happens on Binance's own page, and the code returns to a loopback listener that checks `state`. The flow is tested against a fake authorization server, including that the PKCE verifier matches the challenge. When run against Binance's live consent page, Binance refused the client with "The AI Agent you are using is not currently supported" (error 3346001), so access to this server is limited to agents Binance has approved, and CHARTER is not one yet. CHARTER does not present itself as another agent to get around that. Order placement through MCP is therefore not built: it needs a login to see the real tool schemas. Everything else, including the live proof, runs on Binance Spot Testnet and does not depend on the MCP server. Every audit log entry records which venue produced it. Check `data/audit.log.jsonl` to see exactly which fills were testnet and which, if any, were mainnet.