Skip to main content

DeepSeek MCP-like Server for Terminal

Trust Score This project is an MCP‑like server using the DeepSeek API. It aims to demonstrate the core concepts behind the Model Context Protocol (MCP) by exposing endpoints that allow AI assistants to:

  • List available tools.
  • Invoke commands on an active shell session.
  • Integrate with an AI chat (DeepSeek) that can include special instructions (e.g., CMD: lines) to trigger command execution.

Note: While this implementation captures many of the MCP ideas and includes features like real-time streaming, session management, and basic security, it is not yet a fully compliant MCP server as defined by Anthropic. It is designed as a proof-of-concept, and further enhancements (e.g., complete JSON‑RPC protocol support, advanced authentication, and comprehensive error handling) would be needed for production use.

Features

  • Chat Interface: A modern web-based chat client (using Flask and Tailwind CSS) where users can interact with the server, now with real-time updates and improved error handling.

  • AI Integration: Uses the DeepSeek API to generate responses. The AI can instruct the server to execute terminal commands by including lines beginning with CMD:.

  • Terminal Command Execution: Executes shell commands via a persistent Bash session using the pexpect library and returns output to the client, with added real-time streaming capabilities.

  • MCP Endpoints: Provides /mcp/list_tools and /mcp/call_tool endpoints that mimic MCP tool discovery and invocation, with expanded protocol support including prompts, resources, and roots.

  • Real-time Streaming: Server-Sent Events (SSE) for live command execution updates and terminal output.

  • Security Enhancements: Basic authentication, rate limiting, input validation, and security headers for safer operation.

  • Multiple Transport Options: Supports both HTTP REST API and STDIO command-line interface for flexibility.

  • Session Management: Improved session handling and conversation storage.

  • Docker Support: Containerization for easier deployment and testing.

Getting Started

Prerequisites

  • Python 3.8+
  • pip
  • A valid DeepSeek API key

Installation

  1. Clone the repository:

    git clone https://github.com/OthmaneBlial/term_mcp_deepseek.git
    cd term_mcp_deepseek
    
  2. Create and activate a virtual environment:

    python3 -m venv venv
    source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
    
  3. Install the required dependencies:

    pip install -r requirements.txt
    
  4. Configure your API key:

    Update the DEEPSEEK_API_KEY in .env with your DeepSeek API key.

Running the Server

Quick Start

Use the provided startup script for convenience:

chmod +x startup.sh
./startup.sh

Manual Start

Run the Flask server with:

python server.py

Visit http://127.0.0.1:8000 to access the chat interface.

Docker

For containerized deployment:

docker-compose up -d

Endpoints

Chat Endpoint

  • URL: /chat
  • Method: POST
  • Payload: { "message": "your message here" }
  • Description: Adds the user message to the conversation, sends it to the DeepSeek API, looks for any command instructions (CMD:), executes them, and returns the final response.

MCP Endpoints

List Tools

  • URL: /mcp/list_tools
  • Method: POST
  • Response: JSON listing available tools (e.g., write_to_terminal, read_terminal_output, send_control_character).

Call Tool

  • URL: /mcp/call_tool
  • Method: POST
  • Payload:
    {
      "name": "tool_name",
      "arguments": { ... }
    }
    
  • Description: Directly invoke a tool command on the server.

Real-time Streaming

  • URL: /stream?session_id=session_id
  • Method: GET
  • Description: Server-Sent Events endpoint for real-time command output updates.

Future Improvements

  • Protocol Standardization: Implement JSON‑RPC for a more robust and standardized communication protocol.

  • Real-time Communication: Add Server‑Sent Events (SSE) or WebSockets for live command output streaming.

  • Session & Security Enhancements: Introduce per‑user sessions, proper authentication, input sanitization, and comprehensive error handling.

  • Modular Code Architecture: Further separate API logic from business logic for better maintainability and scalability.

License

This project is open-source and available under the MIT License.

Metadata

Release files for iflow-mcp_othmaneblial-term_mcp_deepseek 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_othmaneblial-term_mcp_deepseek 0.1.0
File Size Uploaded
iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0.tar.gz 45.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_othmaneblial-term_mcp_deepseek 0.1.0
File Interpreter ABI Platform
iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 129.8 kB

Release files / iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0.tar.gz

Download URL iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0.tar.gz
Size 45.3 kB
Tags Source
SHA-256 checksum
How to use checksums
2465f928edbb9a2a3b56622676c8433d2670c11645aed5e3e21924816b3798d0
BLAKE2b-256 checksum
How to use checksums
185729d55bb11422aaab6329ef2a5aa5b272a78312670e33412ac8ab8e856215
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0-py3-none-any.whl

Download URL iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0-py3-none-any.whl
Size 84.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
05f192f17c59aa6bc52c5eaa81c3896f2d621c5d3184157c75e05cc7758f70d6
BLAKE2b-256 checksum
How to use checksums
045397e878b0e306630c4e2a13fea52b200b22399b623f6d85feedca3eb8ed07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page