Python服务器应用

TIA MCP Server是一个基于Python的服务器应用,使用uv进行依赖管理,支持Docker容器化部署。

  • by cadugrillo
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 cadugrillo/tia_mcp_server

使用说明

TIA MCP 服务器

This project is a Python application managed with [uv](https://github.com/astral-sh/uv) and requires Python 3.13.

快速概览

- Entry point: `main.py` (calls `mcp.run(...)` in `server.py`).
- Dependency manager: `uv` with `pyproject.toml` and `uv.lock` present.

前提条件

  1. 安装Python 3.13

    • 从 https://www.python.org/downloads/ 下载并安装。在 Windows 上,安装程序中请勾选“将 Python 添加到 PATH”。
  2. (可选但建议)如果您计划运行Docker镜像,请安装Docker。A. Dockerfile 已包含。

设置——创建并使用虚拟环境

It is recommended to create a virtual environment per-project. Examples below show PowerShell, Command Prompt (cmd.exe), and macOS/Linux shells.

Windows (PowerShell)
```powershell
# Create venv
python -m venv .venv

# If you get a script execution error when enabling the venv, run this once in the same session:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

# Activate the venv
.\.venv\Scripts\Activate.ps1

# Upgrade pip and install uv
python -m pip install --upgrade pip
pip install uv

# Sync dependencies from uv.lock (preferred)
uv sync

# Alternatively, if your project provides a requirements file you can use:
uv pip install -r requirements.txt
```

Windows (Command Prompt)
```cmd
python -m venv .venv
.\.venv\Scripts\activate.bat
python -m pip install --upgrade pip
pip install uv
uv sync
```

macOS / Linux
```bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install uv
uv sync
```

Notes about `uv sync`:
- `uv sync` reads your lockfile (`uv.lock`) and installs pinned versions into the active environment. This is the preferred way to reproduce a known-good environment.
- If you change dependencies in `pyproject.toml`, update the lock with `uv lock` (or your normal `uv` workflow) and then run `uv sync` on other machines.

## Running the application

With the virtual environment active you can run:

```bash
uv python main.py
# or, with the venv active, simply
python main.py
```

The server uses an MCP transport; `main.py` currently calls `mcp.run(transport="streamable-http")`. Adjust runtime flags or env vars as needed for your deployment.

## Docker (optional)

A `Dockerfile` is provided for building a container image. Build and run (example):

```powershell
# build (from repository root)
docker build -t tia-mcp-server:latest .

# run and map port 8000 (adjust if your app uses another port)
docker run --rm -it -p 8000:8000 tia-mcp-server:latest
```

## Git housekeeping

- Add `__pycache__/` to `.gitignore` to avoid committing compiled bytecode. If caches are already tracked, untrack them with your Git client or the PowerShell command provided in the repository's docs.

## Troubleshooting

- If `uv sync` fails to install packages, ensure the virtual environment is activated and that you have a working internet connection. Check `uv.lock` is present and up to date.
- On Windows PowerShell, if activation fails due to execution policy, run the `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process` command shown above.

## Further reading

- uv: https://github.com/astral-sh/uv