mrkeyoor.com_
Thu 17 Sept 04:00 UTC
AI Toolsevaluationupdated 26 Aug 2026

mcp-use review

mcp-use is a TypeScript and Python toolkit for connecting AI applications to Model Context Protocol servers, the small programs that expose tools and data to models. It can create MCP servers and interactive views, connect to existing servers, or run a LangChain-based Python agent across several of them.

+34stars / 7d
Verdict

Our mcp-use Python build succeeded and pip-audit found 0 known vulnerabilities, but only 159 of 337 pytest cases passed while 135 failed and 43 hit errors, so adopt it behind your own tool-level integration tests. The TypeScript side is a strong trial for teams that want MCP tools and interactive views in one scaffold. Python users should choose it for the combined client and LangChain agent layer, not because the current full suite gave us release-level confidence.

We ran it

Lab card: what happened when we ran mcp-useScreenshot of mcp-use (manufact.com)
Install✓ · 40s87 packages · 111 MB
Build✓ · 12s
Tests✗ · 23s159 passed · 135 failed · 43 errors of 337 (pytest)
Known vulns0(pip-audit)
Repo2055 files~229,004 lines of source · 123.1 MB · 26 CI workflows · tests dir

Answers from our run

Does mcp-use build from source?

Dependencies installed in 40 seconds (87 packages), and the build succeeded in 12 seconds. We cloned commit 5865e5c into a clean Debian container with 3 CPUs and no project-specific setup.

Do mcp-use's tests pass?

Not all of them: 159 of 337 passed and 135 failed when we ran the project's own test command (pytest), with 43 collection errors. Some failures need services or credentials a bare container does not have.

Does mcp-use have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use mcp-use?

Teams that only need protocol primitives and want the smallest abstraction: the official TypeScript and Python MCP SDKs have a narrower job.

What are the alternatives to mcp-use?

Official TypeScript MCP SDK, Official Python MCP SDK, FastMCP. Our mcp-use Python build succeeded and pip-audit found 0 known vulnerabilities, but only 159 of 337 pytest cases passed while 135 failed and 43 hit errors, so adopt it behind your own tool-level integration tests.

Setup3/5Quick package build, followed by provider, server, and credential setup
Docs4/5Separate TypeScript and Python guides cover the main workflows
Community5/510,526 stars with same-day releases and issue activity
Maturity3/5Broad v2 surface, but our Python suite had extensive failures

Discussed on

  1. hnShow HN: Mcp-use – Connect any LLM to any MCP155 points
  2. hnShow HN: mcp-use v2 rebuilt from scratch for stateless 2026-07-28 MCP spec10 points
  3. hnShow HN: We built an open source BYOK CLI that supports any model and any MCP6 points
  4. hnShow HN: OSS Python client for creating MCP capable agents in 6 lines of code5 points
  5. hnShow HN: Code Mode for MCP in MCP-use's client3 points

Who it’s for

TypeScript developers building MCP servers with typed tools, React views, an inspector, and deployment commands.
Python developers who want one client for local stdio and remote HTTP MCP servers.
LangChain users building tool-calling agents that choose among several MCP servers.
Teams that want to inspect tool calls and screenshot interactive MCP views before release.

Who it’s NOT for

Teams that only need protocol primitives and want the smallest abstraction: the official TypeScript and Python MCP SDKs have a narrower job.
Multi-agent systems requiring built-in per-tool authorization: issue 1257 says a connected agent currently receives every tool exposed by a server and asks for an interception layer.
Developers who require a clean full Python suite from a fresh install: our run ended with 135 failures and 43 errors, including an async fixture that pytest did not handle.
Projects unwilling to follow a major-version migration: the main README sends v1 users to a dedicated v2 migration guide.
Applications that cannot manage external credentials or subprocesses: the Python examples install a separate LangChain provider, read its API key, and may launch servers through commands such as npx or uvx.

Setup reality

Our Python install from libraries/python/ succeeded in 40 seconds, adding 87 packages and using 111 MB. The build succeeded in 12 seconds. Tests ran for 23 seconds: 159 passed, 135 failed, and 43 ended in collection or setup errors out of 337; pip-audit found 0 known vulnerabilities.

A basic client can connect without an LLM, but the agent layer needs a tool-calling model, its LangChain provider package, and the provider's API key. Each MCP server adds its own command, URL, environment, credentials, and permissions. The TypeScript scaffold also brings a development server, inspector, and optional React view pipeline.

The Python log's clearest setup error says test_conformance.py requested the async fixture conformance_server with no plugin or hook able to handle it. Other conformance cases ended in assertion errors. The output establishes those failures, but it does not show that remote MCP services or missing secrets caused them.

mcp-use joins server building, clients, agents, and MCP views

Most MCP libraries choose one side of the connection. mcp-use covers both. Its main README presents a TypeScript server framework with typed tools, structured results, React views, a browser inspector, a command-line client, screenshots, tunnels, and deployment. The Python package can create servers, connect to several servers, and give their tools to a LangChain model. That breadth is the reason to consider it and the reason to define which half you need.

The TypeScript path is aimed at an MCP application rather than a bare tool endpoint. A generated project serves its MCP route and an inspector, and a tool can bind structured output to an interactive view. Developers can invoke tools from the terminal and capture a view screenshot before connecting ChatGPT or Claude. The Python path is more agent-oriented: configure stdio or HTTP servers, choose a tool-calling model, and let MCPAgent select tools over several steps.

The Python client saves glue code but still runs other people's tools

A Python client can load the familiar mcpServers configuration, spawn local commands, or connect to HTTP endpoints. The agent wrapper then turns discovered tools into a LangChain-compatible loop. Streaming exposes messages and tool actions as they happen. This removes adapter work for teams already committed to LangChain, especially when one agent needs a browser server and a second domain-specific server in the same session.

That convenience does not make an MCP server safe. A configuration may run npx, uvx, or another executable with inherited environment values. Remote servers can call outside systems. The Python README documents allow and deny lists for tools, but issue 1257 describes a missing per-tool authorization hook at the server's agent boundary. A production design still needs identity, least privilege, logs, and explicit approval for destructive operations.

What happened when we ran it

Our sandbox installed the Python project from libraries/python/ at commit 5865e5c in 40 seconds. It added 87 packages and used 111 MB in a fresh Python 3.12 Debian container with 3 CPUs and 8 GB of RAM. The build completed in 12 seconds. Pip-audit reported 0 known vulnerabilities in that installed environment, a clean result for the dependency versions resolved during our run.

Pytest finished after 23 seconds with exit 1. Of 337 cases, 159 passed, 135 failed, and 43 ended in collection or setup errors. The tail named several conformance tests for initialization, tools, resources, prompts, elicitation, and error handling. This was not a minor single assertion at the edge of the suite, so we would not ship a Python integration based only on a successful import and build.

The most specific setup message concerned test_server_conformance_via_runner: pytest said the test requested an async fixture named conformance_server, but no plugin or hook handled it. The remaining listed conformance tests ended in assertion errors. The log does not expose enough context to decide whether one fixture configuration cascaded into all 135 failures. It does establish that the repository's installed test command did not produce a passing development environment in our sandbox.

Model credentials and server permissions are part of setup

The Python agent is not bundled with a model provider. Its README asks users to install a LangChain integration such as the OpenAI or Anthropic package, choose a model that supports tool calls, and place the corresponding API key in the environment. Local clients also need every configured MCP command available. HTTP clients need reachable endpoints and any authentication those servers require. A six-line agent example is therefore the last layer of setup, not the whole system.

TypeScript users get a more contained first loop through create-mcp-use-app, local development, and the inspector. Even there, a fresh server-only scaffold has a visible wart: issue 2297 reproduces 4 React dependency warnings on the first build despite the template having no views. The reporter says the build exits successfully. Treat it as confusing output, not a build failure, and check the issue before teaching newcomers to ignore warnings.

Version 2 moves quickly and asks users to migrate

The repository was pushed on 2026-08-25, the same date as release mcp-use 2.3.2. It had 10,526 stars, 64 open issues and pull requests, 26 CI workflow files, and an MIT license when fetched. The release entry itself contains only its name, so it offers no basis for claiming particular fixes. The README directs version 1 users to a version 2 migration guide, evidence that the public framework shape has changed materially.

Protocol conformance is a stated focus, yet its reporting deserves scrutiny. Issue 2266 says the conformance summary checks observed failures against an expected-failure list but never reports entries that have become obsolete. According to the issue, an old allowlist entry could later hide a regression in that scenario. This is a precise limitation in CI accounting, and it pairs uncomfortably with our many Python conformance failures.

Choose it for its opinions, not just MCP compatibility

The official TypeScript and Python SDKs are better fits when a team wants direct access to protocol primitives and will build its own application structure. FastMCP is the clearer comparison for concise Python server development. mcp-use earns its extra surface when typed TypeScript views, inspection, screenshots, multi-server clients, and a LangChain agent belong in the same engineering workflow.

Our result argues for a controlled adoption. Start with one non-destructive server, pin the mcp-use and provider versions, and write tests around the exact tools the model may call. The successful 12-second build and clean dependency audit remove two concerns. The 135 failed tests and 43 errors add a larger one, so a team should reproduce the relevant client and conformance cases in its own environment before making mcp-use the shared gateway to sensitive systems.

Alternatives

ProjectWhat it isPick it when
Official TypeScript MCP SDK gh↗The protocol project's TypeScript SDK for building MCP clients and servers from lower-level pieces.pick this instead when protocol fidelity and fewer framework opinions matter more than built-in views and inspector workflows.
Official Python MCP SDK gh↗The protocol project's Python implementation for MCP clients, servers, transports, and primitives.pick this instead when you need MCP plumbing without mcp-use's LangChain agent layer.
FastMCP gh↗A Python framework for creating MCP servers and clients with concise declarations.pick this instead when Python-first MCP server development is the main job and you do not need mcp-use's TypeScript view stack.

Sources

  1. mcp-use repository README
  2. mcp-use Python README
  3. mcp-use 2.3.2 release
  4. Per-tool authorization issue 1257
  5. Conformance allowlist issue 2266
  6. Fresh scaffold React warning issue 2297

More ai tools reviews

yolov5 · eve · MemOS · LongCat-Video · Concat · DLSS5-Feeder · the whole board →