Mcp ChatbotSAFE
A chatbot implementation compatible with MCP (terminal / streamlit supported)
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
This project demonstrates how to integrate the Model Context Protocol (MCP) with customized LLM (e.g. Qwen), creating a powerful chatbot that can interact with various tools through MCP servers. The implementation showcases the flexibility of MCP by enabling LLMs to use external tools seamlessly.
[!TIP] For Chinese version, please refer to README_ZH.md.
Overview
Chatbot Streamlit Example
Workflow Tracer Example
- 🚩 Update (2025-04-11):
- Added chatbot streamlit example.
- 🚩 Update (2025-04-10):
- More complex LLM response parsing, supporting multiple MCP tool calls and multiple chat iterations.
- Added single prompt examples with both regular and streaming modes.
- Added interactive terminal chatbot examples.
This project includes:
- Simple/Complex CLI chatbot interface
- Integration with some builtin MCP Server like (Markdown processing tools)
- Support for customized LLM (e.g. Qwen) and Ollama
- Example scripts for single prompt processing in both regular and streaming modes
- Interactive terminal chatbot with regular and streaming response modes
Requirements
- Python 3.10+
- Dependencies (automatically installed via requirements):
- python-dotenv
- mcp[cli]
- openai
- colorama
Installation
- Clone the repository:
git clone [email protected]:keli-wen/mcp_chatbot.git cd mcp_chatbot
- Set up a virtual environment (recommended):
cd folder # Install uv if you don't have it already pip install uv # Create a virtual environment and install dependencies uv venv .venv --python=3.10 # Activate the virtual environment # For macOS/Linux source .venv/bin/activate # For Windows .venv\Scripts\activate # Deactivate the virtual environment deac
de34968d42e4OBSERVED · 2026-10-06Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add mcp-simple-chatbot --env LLM_API_KEY=${LLM_API_KEY} -- uvx mcp-simple-chatbot{
"mcpServers": {
"mcp-simple-chatbot": {
"command": "uvx",
"args": [
"mcp-simple-chatbot"
],
"env": {
"LLM_API_KEY": "${LLM_API_KEY}"
}
}
}
}Exposed tools (2)
1 read · 1 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
read_markdown_file | read | Read markdown files from a directory. |
write_markdown_file | write | Write content to a markdown file in a specified directory, |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (2 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (3)
python-dotenv, mcp, colorama, openai, requests, streamlit
For more control, you can use the low-level server implementation directly. This gives you full access to the protocol and allows you to customize every aspect of your server, including lifecycle mana
assets/mcp_chatbot_streamlit_demo_low.gif
Gates applied: no_behavioural_pass.
de34968d42e4full audit observations/trust-audit/mcp-server/keli-wen__mcp-chatbot-1.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-06 | de34968d42e4 | SAFE | B | 89 | first audit |
Questions
What is the Mcp Chatbot MCP server?
A chatbot implementation compatible with MCP (terminal / streamlit supported)
What tools does Mcp Chatbot expose?
2 in total: 1 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Mcp Chatbot safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does Mcp Chatbot need?
It reads LLM_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How current is this page?
The grade is for one exact copy of the source (de34968d42e4), read on 2026-10-06. The repository is watched and re-audited when it changes.