MCP Use logo

MCP Use

OrganizationPopular
mcp-use

The fullstack MCP framework to develop MCP Apps for ChatGPT / Claude & MCP Servers for AI Agents.

Publishermcp-use
Repositorymcp-use
LanguageTypeScript
Forks
1.3K
Stars
10K
Available tools
0
Transport typestdio
Categories
LicenseMIT
Links
  • Connect tools to AI workflows

    MCP Use exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 0 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    10K stars and 1.3K forks from the linked repository.

About

mcp-use is the fullstack MCP framework to build MCP Apps for ChatGPT / Claude & MCP Servers for AI Agents.

  • Build with mcp-use SDK (ts | py): MCP Servers and MCP Apps
  • Preview on mcp-use MCP Inspector (online | oss): Test and debug your MCP Servers and Apps
  • Deploy on Manufact MCP Cloud: Connect your GitHub repo and have your MCP Server and App up and running in production with observability, metrics, logs, branch-deployments, and more

Documentation

Visit our docs or jump to a quickstart (TypeScript | Python)

Skills for Coding Agents

Using Claude Code, Codex, Cursor or other AI coding agents?

Install mcp-use skill for MCP Apps

Quickstart: MCP Servers and MCP Apps

TypeScript

Build your first MCP Server or MPC App:

bash
npx create-mcp-use-app@latest

Or create a server manually:

typescript
import { MCPServer, text } from "mcp-use/server";
import { z } from "zod";

const server = new MCPServer({
  name: "my-server",
  version: "1.0.0",
});

server.tool({
  name: "get_weather",
  description: "Get weather for a city",
  schema: z.object({ city: z.string() }),
}, async ({ city }) => {
  return text(`Temperature: 72°F, Condition: sunny, City: ${city}`);
});

await server.listen(3000);
// Inspector at http://localhost:3000/inspector

→ Full TypeScript Server Documentation

MCP Apps

MCP Apps let you build interactive widgets that work across Claude, ChatGPT, and other MCP clients — write once, run everywhere.

Server: define a tool and point it to a widget:

typescript
import { MCPServer, widget } from "mcp-use/server";
import { z } from "zod";

const server = new MCPServer({
  name: "weather-app",
  version: "1.0.0",
});

server.tool({
  name: "get-weather",
  description: "Get weather for a city",
  schema: z.object({ city: z.string() }),
  widget: "weather-display", // references resources/weather-display/widget.tsx
}, async ({ city }) => {
  return widget({
    props: { city, temperature: 22, conditions: "Sunny" },
    message: `Weather in ${city}: Sunny, 22°C`,
  });
});

await server.listen(3000);

Widget: create a React component in resources/weather-display/widget.tsx:

tsx
import { useWidget, type WidgetMetadata } from "mcp-use/react";
import { z } from "zod";

const propSchema = z.object({
  city: z.string(),
  temperature: z.number(),
  conditions: z.string(),
});

export const widgetMetadata: WidgetMetadata = {
  description: "Display weather information",
  props: propSchema,
};

const WeatherDisplay: React.FC = () => {
  const { props, isPending, theme } = useWidget<z.infer<typeof propSchema>>();
  const isDark = theme === "dark";

  if (isPending) return <div>Loading...</div>;

  return (
    <div style={{
      background: isDark ? "#1a1a2e" : "#f0f4ff",
      borderRadius: 16, padding: 24,
    }}>
      <h2>{props.city}</h2>
      <p>{props.temperature}° — {props.conditions}</p>
    </div>
  );
};

export default WeatherDisplay;

Widgets in resources/ are auto-discovered — no manual registration needed.

Visit MCP Apps Documentation

Templates

Ready-to-use MCP Apps you can deploy in one click or remix as your own.

PreviewNameToolsDemo URLRepoDeploy
Chart BuilderChart Buildercreate-chartOpen URLmcp-use/mcp-chart-builderDeploy to mcp-use
Diagram BuilderDiagram Buildercreate-diagram, edit-diagramOpen URLmcp-use/mcp-diagram-builderDeploy to mcp-use
Slide DeckSlide Deckcreate-slides, edit-slideOpen URLmcp-use/mcp-slide-deckDeploy to mcp-use
Maps ExplorerMaps Explorershow-map, get-place-details, add-markersOpen URLmcp-use/mcp-maps-explorerDeploy to mcp-use
Hugging Face SpacesHugging Face Spacessearch-spaces, show-space, trending-spacesOpen URLmcp-use/mcp-huggingface-spacesDeploy to mcp-use
Recipe FinderRecipe Findersearch-recipes, get-recipe, meal-plan, recipe-suggestionOpen URLmcp-use/mcp-recipe-finderDeploy to mcp-use
Widget GalleryWidget Galleryshow-react-widget, html-greeting, mcp-ui-poll, programmatic-counter, detect-clientOpen URLmcp-use/mcp-widget-galleryDeploy to mcp-use
Multi Server HubMulti Server Hubhub-status, hub-config-example, audit-logOpen URLmcp-use/mcp-multi-server-hubDeploy to mcp-use
File ManagerFile Manageropen-vault, get-file, list-filesOpen URLmcp-use/mcp-file-managerDeploy to mcp-use
Progress DemoProgress Demoprocess-data, fetch-report, delete-dataset, search-external, failing-toolOpen URLmcp-use/mcp-progress-demoDeploy to mcp-use
i18n Adaptivei18n Adaptiveshow-context, detect-callerOpen URLmcp-use/mcp-i18n-adaptiveDeploy to mcp-use
Media MixerMedia Mixergenerate-image, generate-audio, generate-pdf, get-report, get-html-snippet, get-xml-config, get-stylesheet, get-script, get-data-arrayOpen URLmcp-use/mcp-media-mixerDeploy to mcp-use
Resource WatcherResource Watchershow-config, update-config, toggle-feature, list-rootsOpen URLmcp-use/mcp-resource-watcherDeploy to mcp-use

Python

bash
pip install mcp-use
python
from typing import Annotated

from mcp.types import ToolAnnotations
from pydantic import Field

from mcp_use import MCPServer

server = MCPServer(name="Weather Server", version="1.0.0")

@server.tool(
    name="get_weather",
    description="Get current weather information for a location",
    annotations=ToolAnnotations(readOnlyHint=True, openWorldHint=True),
)
async def get_weather(
    city: Annotated[str, Field(description="City name")],
) -> str:
    return f"Temperature: 72°F, Condition: sunny, City: {city}"

# Start server with auto-inspector
server.run(transport="streamable-http", port=8000)
# 🎉 Inspector at http://localhost:8000/inspector

→ Full Python Server Documentation


Inspector

The mcp-use Inspector lets you test and debug your MCP servers interactively.

Auto-included when using server.listen():

typescript
server.listen(3000);
// Inspector at http://localhost:3000/inspector

Online when connecting to hosted MCP servers:

Visit https://inspector.mcp-use.com

Standalone: inspect any MCP server:

bash
npx @mcp-use/inspector --url http://localhost:3000/mcp

Visit Inspector Documentation


Deploy

Deploy your MCP server to production:

bash
npx @mcp-use/cli login
npx @mcp-use/cli deploy

Or connect your GitHub repo on manufact.com — production-ready with observability, metrics, logs, and branch-deployments.


Package Overview

This monorepo contains multiple packages for both Python and TypeScript:

Python Packages

PackageDescriptionVersion
mcp-useComplete MCP server and MCP agent SDKPyPI

TypeScript Packages

PackageDescriptionVersion
mcp-useCore framework for MCP servers, MCP apps, and MCP agentsnpm
@mcp-use/cliBuild tool with hot reload and auto-inspectornpm
@mcp-use/inspectorWeb-based previewer and debugger for MCP serversnpm
create-mcp-use-appProject scaffolding toolnpm

Also: MCP Agent & Client

mcp-use also provides a full MCP Agent and Client implementation.

Python

bash
pip install mcp-use langchain-openai
python
import asyncio
from langchain_openai import ChatOpenAI
from mcp_use import MCPAgent, MCPClient

async def main():
    config = {
        "mcpServers": {
            "filesystem": {
                "command": "npx",
                "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
            }
        }
    }

    client = MCPClient.from_dict(config)
    llm = ChatOpenAI(model="gpt-4o")
    agent = MCPAgent(llm=llm, client=client)

    result = await agent.run("List all files in the directory")
    print(result)

asyncio.run(main())

→ Full Python Agent Documentation

TypeScript

bash
npm install mcp-use @langchain/openai
typescript
import { ChatOpenAI } from "@langchain/openai";
import { MCPAgent, MCPClient } from "mcp-use";

async function main() {
  const config = {
    mcpServers: {
      filesystem: {
        command: "npx",
        args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
      },
    },
  };

  const client = MCPClient.fromDict(config);
  const llm = new ChatOpenAI({ modelName: "gpt-4o" });
  const agent = new MCPAgent({ llm, client });

  const result = await agent.run("List all files in the directory");
  console.log(result);
}

main();

→ Full TypeScript Agent Documentation

Python

python
import asyncio
from mcp_use import MCPClient

async def main():
    config = {
        "mcpServers": {
            "calculator": {
                "command": "npx",
                "args": ["-y", "@modelcontextprotocol/server-everything"]
            }
        }
    }

    client = MCPClient.from_dict(config)
    await client.create_all_sessions()

    session = client.get_session("calculator")
    result = await session.call_tool(name="add", arguments={"a": 5, "b": 3})

    print(f"Result: {result.content[0].text}")
    await client.close_all_sessions()

asyncio.run(main())

→ Python Client Documentation

TypeScript

typescript
import { MCPClient } from "mcp-use";

async function main() {
  const config = {
    mcpServers: {
      calculator: {
        command: "npx",
        args: ["-y", "@modelcontextprotocol/server-everything"],
      },
    },
  };

  const client = new MCPClient(config);
  await client.createAllSessions();

  const session = client.getSession("calculator");
  const result = await session.callTool("add", { a: 5, b: 3 });

  console.log(`Result: ${result.content[0].text}`);
  await client.closeAllSessions();
}

main();

→ TypeScript Client Documentation


Conformance to Model Context Protocol


Security

See SECURITY.md

Community & Support


Star History

Star History Chart


Contributors

Thanks to all our amazing contributors!

Core Contributors

  1. Pietro (@pietrozullo)
  2. Luigi (@pederzh)
  3. Enrico (@tonxxd)

Use MCP Use MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once MCP Use is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add MCP Use as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the MCP Use MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "mcp-use": {
      "command": "npx",
      "args": [
        "-y",
        "null"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the MCP Use MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the MCP Use MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use MCP Use to help me with this task?
MCP Use
Sure. I read it.
Here is what I found using MCP Use.

Frequently asked questions

What is the MCP Use MCP server used for?

MCP Use is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use MCP Use MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use MCP Use with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use MCP Use MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With MCP Use connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect MCP Use MCP to TypingMind?

MCP Use runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does MCP Use MCP provide in TypingMind?

MCP Use exposes MCP capabilities that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use MCP Use MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If MCP Use requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇