An open API service indexing awesome lists of open source software.

https://github.com/mcp-use/mcp-use-ts

🚀 mcp-use is a TypeScript library that makes it easy to connect LangChain.js-compatible LLMs with MCP servers. Build powerful, flexible AI agents with dynamic tool access and multi-server support.
https://github.com/mcp-use/mcp-use-ts

agent langchain llm mcp mcp-client mcp-server typescript

Last synced: 4 months ago
JSON representation

🚀 mcp-use is a TypeScript library that makes it easy to connect LangChain.js-compatible LLMs with MCP servers. Build powerful, flexible AI agents with dynamic tool access and multi-server support.

Awesome Lists containing this project

README

          





mcp use logo

Unified MCP Client Library


















🌐 **MCP Client** is the open-source way to connect **any LLM to any MCP server** in TypeScript/Node.js, letting you build custom agents with tool access without closed-source dependencies.

💡 Let developers easily connect any LLM via LangChain.js to tools like web browsing, file operations, 3D modeling, and more.

---

## ✨ Key Features

| Feature | Description |
| ------------------------------- | -------------------------------------------------------------------------- |
| 🔄 **Ease of use** | Create an MCP-capable agent in just a few lines of TypeScript. |
| 🤖 **LLM Flexibility** | Works with any LangChain.js-supported LLM that supports tool calling. |
| 🌐 **HTTP Support** | Direct SSE/HTTP connection to MCP servers. |
| ⚙️ **Dynamic Server Selection** | Agents select the right MCP server from a pool on the fly. |
| 🧩 **Multi-Server Support** | Use multiple MCP servers in one agent. |
| 🛡️ **Tool Restrictions** | Restrict unsafe tools like filesystem or network. |
| 🔧 **Custom Agents** | Build your own agents with LangChain.js adapter or implement new adapters. |

---

## 🚀 Quick Start

### Requirements

- Node.js 22.0.0 or higher
- npm, yarn, or pnpm (examples use pnpm)

### Installation

```bash
# Install from npm
npm install mcp-use
# LangChain.js and your LLM provider (e.g., OpenAI)
npm install langchain @langchain/openai dotenv
```

Create a `.env`:

```ini
OPENAI_API_KEY=your_api_key
```

### Basic Usage

```ts
import { ChatOpenAI } from '@langchain/openai'
import { MCPAgent, MCPClient } from 'mcp-use'
import 'dotenv/config'

async function main() {
// 1. Configure MCP servers
const config = {
mcpServers: {
playwright: { command: 'npx', args: ['@playwright/mcp@latest'] }
}
}
const client = MCPClient.fromDict(config)

// 2. Create LLM
const llm = new ChatOpenAI({ modelName: 'gpt-4o' })

// 3. Instantiate agent
const agent = new MCPAgent({ llm, client, maxSteps: 20 })

// 4. Run query
const result = await agent.run('Find the best restaurant in Tokyo using Google Search')
console.log('Result:', result)
}

main().catch(console.error)
```

---

## 📂 Configuration File

You can store servers in a JSON file:

```json
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
```

Load it:

```ts
import { MCPClient } from 'mcp-use'

const client = MCPClient.fromConfigFile('./mcp-config.json')
```

---

## 📚 Examples

We provide a comprehensive set of examples demonstrating various use cases. All examples are located in the `examples/` directory with a dedicated README.

### Running Examples

```bash
# Install dependencies
npm install

# Run any example
npm run example:airbnb # Search accommodations with Airbnb
npm run example:browser # Browser automation with Playwright
npm run example:chat # Interactive chat with memory
npm run example:filesystem # File system operations
npm run example:http # HTTP server connection
npm run example:everything # Test MCP functionalities
npm run example:multi # Multiple servers in one session
```

### Example Highlights

- **Browser Automation**: Control browsers to navigate websites and extract information
- **File Operations**: Read, write, and manipulate files through MCP
- **Multi-Server**: Combine multiple MCP servers (Airbnb + Browser) in a single task
- **Sandboxed Execution**: Run MCP servers in isolated E2B containers
- **OAuth Flows**: Authenticate with services like Linear using OAuth2

See the [examples README](./examples/README.md) for detailed documentation and prerequisites.

---

## 🔄 Multi-Server Example

```ts
const config = {
mcpServers: {
airbnb: { command: 'npx', args: ['@openbnb/mcp-server-airbnb'] },
playwright: { command: 'npx', args: ['@playwright/mcp@latest'] }
}
}
const client = MCPClient.fromDict(config)
const agent = new MCPAgent({ llm, client, useServerManager: true })
await agent.run('Search Airbnb in Barcelona, then Google restaurants nearby')
```

---

## 🔒 Tool Access Control

```ts
const agent = new MCPAgent({
llm,
client,
disallowedTools: ['file_system', 'network']
})
```

## 👥 Contributors



Zane/


Zane




Pietro


Pietro Zullo

## 📜 License

MIT © [Zane](https://github.com/zandko)