https://github.com/hideya/langchain-mcp-tools-ts-usage
MCP Tools Usage From LangChain ReAct Agent / Example in TypeScript
https://github.com/hideya/langchain-mcp-tools-ts-usage
langchain langchain-typescript mcp mcp-client modelcontextprotocol nodejs tool-call tool-calling typescript
Last synced: 6 months ago
JSON representation
MCP Tools Usage From LangChain ReAct Agent / Example in TypeScript
- Host: GitHub
- URL: https://github.com/hideya/langchain-mcp-tools-ts-usage
- Owner: hideya
- License: mit
- Created: 2025-01-06T05:44:45.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-04-22T03:23:25.000Z (6 months ago)
- Last Synced: 2025-04-23T00:42:27.786Z (6 months ago)
- Topics: langchain, langchain-typescript, mcp, mcp-client, modelcontextprotocol, nodejs, tool-call, tool-calling, typescript
- Language: TypeScript
- Homepage:
- Size: 91.8 KB
- Stars: 12
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MCP Tools Usage From LangChain / Example in TypeScript [](https://github.com/hideya/mcp-langchain-tools-ts-usage/blob/main/LICENSE)
This simple [Model Context Protocol (MCP)](https://modelcontextprotocol.io/)
client demonstrates the use of MCP server tools by LangChain ReAct Agent.It leverages a utility function `convertMcpToLangchainTools()` from
[`@h1deya/langchain-mcp-tools`](https://www.npmjs.com/package/@h1deya/langchain-mcp-tools).
This function handles parallel initialization of specified multiple MCP servers
and converts their available tools into an array of LangChain-compatible tools
([`StructuredTool[]`](https://api.js.langchain.com/classes/_langchain_core.tools.StructuredTool.html)).Anthropic's `claude-3-5-sonnet-latest` is used as the LLM.
For convenience, code for OpenAI's `gpt-4o` is also included and commented out.A bit more realistic (conversational) MCP Client is available
[here](https://github.com/hideya/mcp-client-langchain-ts)A python equivalent of this app is available
[here](https://github.com/hideya/langchain-mcp-tools-py-usage)## Prerequisites
- Node.js 16+
- npm 7+ (`npx`) to run Node.js-based MCP servers
- [optional] [`uv` (`uvx`)](https://docs.astral.sh/uv/getting-started/installation/)
installed to run Python-based MCP servers
- API key from [Anthropic](https://console.anthropic.com/settings/keys)
(or [OpenAI](https://platform.openai.com/api-keys))## Usage
1. Install dependencies:
```bash
npm install
```2. Setup API key:
```bash
cp .env.template .env
```
- Update `.env` as needed.
- `.gitignore` is configured to ignore `.env`
to prevent accidental commits of the credentials.3. Run the app:
```bash
npm start
```## Sample Code for SSE Authentiocation
A simple example of showing how to implement an OAuth client provider and
use it with the `langchain-mcp-tools` library can be found
in [`src/sse-auth-test-client.ts`](src/sse-auth-test-client.ts).For testing purposes, a sample MCP server with OAuth authentication support
that works with the above client is provided
in [`src/sse-auth-test-server.ts`](src/sse-auth-test-server.ts).You can run the server with `npm run sse-auth-test-server`
and the client with `npm run sse-auth-test-client`.