#
@huggingface/mcp-client

Client for the Model Context Protocol (MCP).

This package provides a client implementation for interacting with MCP servers, built on top of our InferenceClient, `@huggingface/inference`.

It includes an example CLI smol Agent that can leverage MCP tools.

##
Installation

This package is part of the Hugging Face JS monorepo. To install dependencies for all packages, run from the root of the repository:

    pnpm install

##
Usage (CLI Agent)

The package includes a command-line interface (CLI) agent that demonstrates how to use the MCP client.

###
Prerequisites

- Hugging Face API Token: You need a Hugging Face API token with appropriate permissions. Set it as an environment variable:

      export HF_TOKEN="hf_..."

###
Running the Agent

Navigate to the package directory and run the agent script:

    cd packages/mcp-client
    pnpm agent

Alternatively, run from the root of the monorepo:

    pnpm --filter @huggingface/mcp-client agent

The agent will load available MCP tools (by default, connecting to a filesystem server for your Desktop and a Playwright server) and prompt you for input (`>`).

###
Configuration (Environment Variables)

- `HF_TOKEN` (Optional): Your Hugging Face API token. Required if you use an Inference Provider on HF.
- `MODEL_ID` (Optional): The model ID to use for the agent’s inference. Defaults to `Qwen/Qwen2.5-72B-Instruct`.
- `PROVIDER` (Optional): The inference provider. Defaults to `together`. See `@huggingface/inference` for available providers.
- `ENDPOINT_URL` or `BASE_URL` (Optional): A custom base URL (local for instance) to call.

Example with custom model:

    export HF_TOKEN="hf_..."
    export MODEL_ID="Qwen/Qwen2.5-72B-Instruct"
    pnpm agent

##
Development

Common development tasks can be run using pnpm scripts:

- `pnpm build`: Build the package.
- `pnpm lint`: Lint and fix code style.
- `pnpm format`: Format code using Prettier.
- `pnpm test`: Run tests using Vitest.
- `pnpm check`: Type-check the code using TypeScript.

##
License

MIT

< > Update on GitHub