logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

universal-chat-interface-mcp-service

Facilitates communication with diverse large language models, such as OpenAI, MistralAI, Anthropic, xAI, Google AI, DeepSeek, Alibaba, and Inception, utilizing the standardized MCP communication protocol.

Author

universal-chat-interface-mcp-service logo

amidabuddha

MIT License

Quick Info

GitHub GitHub Stars 37
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

openaiamidabuddhaapisrequests amidabuddhamcp protocolunichat mcp

Unified Conversational Agent MCP Endpoint in Python

An alternative implementation is available in TypeScript

MseeP.ai Security Assessment Badge

Licensed under MIT Quality Score Smithery Deployments Count

Location: MCPHub

Dispatch requests to providers like OpenAI, MistralAI, Anthropic, xAI, Google AI, DeepSeek, Alibaba, and Inception via the MCP framework, either through direct tool invocation or structured prompts. API credentials from the respective vendors are mandatory for operation.

Available Tool

This service exposes a singular primary tool: - unichat: Used for submitting queries to the integrated AI backends. - Requires the positional string argument named "messages". - Yields a response object upon successful execution.

Predefined Operational Routines (Prompts)

  • code_review
  • Purpose: Scrutinize source code for adherence to best practices, vulnerability detection, and optimization suggestions.
  • Parameters:
    • code (string, mandatory): The source code block slated for inspection.
  • document_code
  • Purpose: Generate comprehensive inline documentation, including docstrings and explanatory annotations, for supplied code.
  • Parameters:
    • code (string, mandatory): The segment of code requiring annotation.
  • explain_code
  • Purpose: Provide an in-depth functional breakdown of a given code snippet.
  • Parameters:
    • code (string, mandatory): The code passage to be elucidated.
  • code_rework
  • Purpose: Modify the input code based on specified transformation instructions.
  • Parameters:
    • changes (string, optional): A description detailing the required modifications.
    • code (string, mandatory): The base code to undergo modification.

Rapid Initialization Guide

Installation Steps

Integration with Claude Desktop

Configuration file paths: On macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

Supported Model Identifiers:

A comprehensive roster of models compatible with the "SELECTED_UNICHAT_MODEL" setting can be referenced here. Ensure that the corresponding vendor access token is set as "YOUR_UNICHAT_API_KEY".

Configuration Snippet Example:

"env": {
  "UNICHAT_MODEL": "gpt-4o-mini",
  "UNICHAT_API_KEY": "YOUR_OPENAI_API_KEY"
}

Configuration for Local/In-Development Service Instances

"mcpServers": {
  "unichat-mcp-server": {
    "command": "uv",
    "args": [
      "--directory",
      "{{your source code local directory}}/unichat-mcp-server",
      "run",
      "unichat-mcp-server"
    ],
    "env": {
      "UNICHAT_MODEL": "SELECTED_UNICHAT_MODEL",
      "UNICHAT_API_KEY": "YOUR_UNICHAT_API_KEY"
    }
  }
}

Configuration for Publicly Available Service Instances

"mcpServers": {
  "unichat-mcp-server": {
    "command": "uvx",
    "args": [
      "unichat-mcp-server"
    ],
    "env": {
      "UNICHAT_MODEL": "SELECTED_UNICHAT_MODEL",
      "UNICHAT_API_KEY": "YOUR_UNICHAT_API_KEY"
    }
  }
}

Smithery Deployment

To automate the setup of this Unichat service for the Claude Desktop client using Smithery:

npx -y @smithery/cli install unichat-mcp-server --client claude

Development Cycle

Assembly and Distribution

To prepare the component for broader release:

  1. Eliminate previous build artifacts:
rm -rf dist
  1. Synchronize dependencies and refresh lock files:
uv sync
  1. Compile package distributions:
uv build

This process generates source and wheel distributions within the dist/ folder.

  1. Upload to PyPI:
uv publish --token {{YOUR_PYPI_API_TOKEN}}

Troubleshooting Execution

Debugging MCP services that communicate over standard I/O streams can be complicated. For the optimal diagnostic environment, utilize the MCP Inspector.

Launch the Inspector utility via npm using the subsequent invocation:

npx @modelcontextprotocol/inspector uv --directory {{your source code local directory}}/unichat-mcp-server run unichat-mcp-server

Once initiated, the Inspector will present a web address accessible in your browser to commence the debugging session.

WIKIPEDIA: XMLHttpRequest (XHR) is an Application Programming Interface within the form of a JavaScript object whose member functions facilitate the transmission of HTTP requests from a web browser to a designated web server. These functionalities permit a web application to dispatch server queries post-page rendering completion and subsequently receive data in return. XMLHttpRequest serves as a fundamental element of Ajax development methodology. Before Ajax gained traction, the primary means of server interaction involved page reloads triggered by hyperlinks or form submissions.

== Genesis == The underlying concept for XMLHttpRequest was conceptualized in the year 2000 by the engineering team behind Microsoft Outlook. This concept was subsequently integrated into the Internet Explorer 5 browser release (1999). Notably, the initial syntax deviated from the formal XMLHttpRequest identifier. Developers instead employed object instantiations like ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). As of the Internet Explorer 7 release (2006), all prevalent browsers fully support the standardized XMLHttpRequest identifier. The XMLHttpRequest identifier has since become the established convention across all major browser engines, including Mozilla's Gecko rendering system (2002), Safari version 1.2 (2004), and Opera version 8.0 (2005).

=== Standardization Efforts === The World Wide Web Consortium (W3C) formally issued a Working Draft specification for the XMLHttpRequest object on April 5, 2006. Subsequently, on February 25, 2008, the W3C released the Level 2 specification draft. Level 2 introduced enhancements such as methods for monitoring transfer progress, enabling cross-origin requests, and supporting binary byte stream handling. By the close of 2011, the Level 2 feature set was merged back into the core specification. In late 2012, stewardship of the development process transitioned to the WHATWG, which now maintains the living document using Web IDL definitions.

== Operational Procedure == Typically, executing a server request via XMLHttpRequest involves several distinct programming stages.

  1. Instantiation: Create an XMLHttpRequest object by invoking its constructor:
  2. Configuration: Invoke the "open" method to define the request protocol (GET/POST, etc.), specify the target resource Uniform Resource Identifier (URI), and select either synchronous or asynchronous execution mode:
  3. Asynchronous Listener Setup: For non-blocking operations, register an event handler function to be notified upon changes in the request lifecycle:
  4. Transmission: Commence the transmission sequence by calling the "send" method:
  5. Response Handling: Monitor state transitions within the registered event listener. If the server successfully delivers payload data, it is usually accessible via the "responseText" attribute. Once processing is finalized, the object reaches state 4, designated as the "done" state. Beyond these fundamental steps, XMLHttpRequest offers numerous controls over request dispatch and response processing. Custom HTTP header fields can be injected into the outgoing request to dictate server behavior, and data payloads can be transmitted to the server by furnishing them within the "send" call arguments. The retrieved response can be deserialized from JSON format directly into a usable JavaScript object structure, or it can be processed incrementally as incoming data chunks arrive, foregoing the need to wait for the complete transfer. Furthermore, requests can be terminated prematurely or configured with a timeout limit.

See Also

`