Skip to main content

MCP server for terminal command execution with DeepSeek integration

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0.tar.gz
  • Upload date:
  • Size: 45.3 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2465f928edbb9a2a3b56622676c8433d2670c11645aed5e3e21924816b3798d0
MD5 77067ff27687d06212005c9c59fa29e7
BLAKE2b-256 185729d55bb11422aaab6329ef2a5aa5b272a78312670e33412ac8ab8e856215

See more details on using hashes here.

File details

Details for the file iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 84.5 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for iflow_mcp_othmaneblial_term_mcp_deepseek-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 05f192f17c59aa6bc52c5eaa81c3896f2d621c5d3184157c75e05cc7758f70d6
MD5 a3b24607416ae2f7baf8f70b6faf7571
BLAKE2b-256 045397e878b0e306630c4e2a13fea52b200b22399b623f6d85feedca3eb8ed07

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page