w3cj writes about jev-chat, a tool-calling chat bot that routes user requests to real tools using Jev, a non-generative classifier from TypeSafe, with no LLM writing any output. Every value on screen was either typed by the user or returned by a tool, so the assistant cannot invent a fact. The system supports weather, unit conversion, Wikipedia lookups, recipes, web search, Todoist, and Home Assistant via MCP servers, with an inspector pane exposing every decision and probability for each turn.
- Jev answers only two question types โ Choice and Noul โ and never produces text; all reply wording is templated in code
- Pre-processing handles spell-check (cspell + compromise) and resolves short follow-ups like "what about Boston?" by swapping in the new value
- Multi-step tools (Wikipedia, web search) chain multiple Jev requests: pick topic, then article, then the exact line that answers
- Confidence-gated routing shows two buttons when the top tools are close rather than guessing
- The repo is a proof of concept; the author will not accept PRs for new features
- English only; no compound requests or multi-step reasoning supported
This guide walks you through building production-grade MCP servers that expose your organization's internal data to AI models, covering authentication, multi-tenancy, streaming, and deployment patterns.
This article details the creation of a simple, 50-line agent using Model Context Protocol (MCP) and Hugging Face's tools, demonstrating how easily agents can be built with modern LLMs that support function/tool calling.
1. **MCP Overview**: MCP is a standard API for exposing tools that can be integrated with Large Language Models (LLMs).
2. **Implementation**: The author explains how to implement a MCP client using TypeScript and the Hugging Face Inference Client. This client connects to MCP servers, retrieves tools, and integrates them into LLM inference.
3. **Tools**: Tools are defined with a name, description, and parameters, and are passed to the LLM for function calling.
4. **Agent Design**: An agent is essentially a while loop that alternates between tool calling and feeding tool results back into the LLM until a specific condition is met, such as two consecutive non-tool messages.
5. **Code Example**: The article provides a concise 50-line TypeScript implementation of an agent, demonstrating the simplicity and power of MCP.
6. **Future Directions**: The author suggests experimenting with different models and inference providers, as well as integrating local LLMs using frameworks like llama.cpp or LM Studio.