Skip to main content

ICSC Ava Upload Toolkit - 包含 MCP Server 和 Mock File Service 的完整工具套件

Project description

ICSC Ava Upload Toolkit

完整的檔案上傳工具套件,包含 MCP Server 和 Mock File Service,支援工具鏈設計,專為 LibreChat 系統設計。

功能

MCP Server (icsc-ava-upload-mcp-server)

  • download_and_upload: [CHAINING TOOL] 接收來自上游工具的暫存 URL,下載檔案並上傳到 LibreChat 後端系統

Mock File Service (mock-file-service)

  • FastAPI 模擬服務: 模擬 Node.js Fastify 的 AVA File Service
  • 檔案上傳/下載: 提供完整的檔案管理 API
  • 多種儲存類型: 支援 chat、crawler、doc、logs 等不同類型的檔案儲存

安裝

使用 uv 安裝

# 安裝專案依賴
uv sync

# 或者以開發模式安裝
uv pip install -e .

使用 uvx 直接運行

MCP Server

# 從本地專案運行 MCP Server (STDIO 模式)
uvx --from . icsc-ava-upload-server stdio

# MCP Server (HTTP 模式) - 可指定 host 和 port
uvx --from . icsc-ava-upload-server http 127.0.0.1 8001

# 使用簡短命令
uvx --from . icsc-ava-mcp stdio

Mock File Service

# 從本地專案運行 Mock File Service - 可指定 host 和 port
uvx --from . mock-file-service 127.0.0.1 8090

# 使用簡短命令
uvx --from . icsc-ava-mock-service 127.0.0.1 8090

# 開發模式 (支援熱重載)
uvx --from . mock-file-service 127.0.0.1 8090 --reload

運行模式

MCP Server 運行模式

STDIO 模式

適用於本地 MCP Client 連接:

# 使用 uv run
uv run python -m icsc_ava_upload_mcp_server.server stdio

# 或使用安裝後的命令
uv run icsc-ava-upload-server stdio

Streamable HTTP 模式

適用於遠端 MCP Client 連接:

# 使用 uv run (預設 127.0.0.1:8001)
uv run python -m icsc_ava_upload_mcp_server.server http

# 指定 host 和 port
uv run python -m icsc_ava_upload_mcp_server.server http 0.0.0.0 9000

# 或使用安裝後的命令
uv run icsc-ava-upload-server http 127.0.0.1 8001

Mock File Service 運行模式

# 使用 uv run (預設 127.0.0.1:8090)
uv run python -m mock_file_service.server

# 指定 host 和 port
uv run python -m mock_file_service.server 0.0.0.0 9000

# 開發模式 (熱重載)
uv run python -m mock_file_service.server 127.0.0.1 8090 --reload

# 或使用安裝後的命令
uv run mock-file-service 127.0.0.1 8090

同時運行兩個服務

方法一:使用快速啟動腳本(推薦)

# 一鍵啟動兩個服務
uv run icsc-ava-start

# 或使用 uvx
uvx --from . icsc-ava-start

方法二:手動啟動

# 終端機 1: 啟動 Mock File Service
uv run mock-file-service 127.0.0.1 8090

# 終端機 2: 啟動 MCP Server
uv run icsc-ava-upload-server http 127.0.0.1 8001

HTTP 模式預設監聽:

  • MCP Server: http://127.0.0.1:8001/mcp
  • Mock File Service: http://127.0.0.1:8090

MCP Client 設定範例

Claude Desktop (stdio 模式)

claude_desktop_config.json 中加入:

{
  "mcpServers": {
    "icsc-ava-upload": {
      "command": "uvx",
      "args": ["--from", "D:\\project\\icsc-file-uploader", "icsc-ava-upload-server", "stdio"]
    }
  }
}

HTTP 模式連接

啟動 HTTP 伺服器後,MCP Client 可連接到:

  • URL: http://127.0.0.1:8001/mcp

開發

VSCode 啟動設定

專案已包含 .vscode/launch.json,提供兩種除錯模式:

  • MCP Server (STDIO): 以 stdio 模式啟動
  • MCP Server (HTTP): 以 streamable-http 模式啟動

發佈

發佈到官方 PyPI

  1. 更新版本號

    # 更新 pyproject.toml 中的版本號
    # 確保版本號遵循語意化版本控制 (Semantic Versioning)
    
  2. 構建套件

    # 使用 uv 構建套件
    uv build
    
    # 或使用傳統的 setuptools
    python -m build
    
  3. 上傳到 PyPI

    # 上傳到官方 PyPI
    uv publish --publish-url https://upload.pypi.org/legacy/
    
    # 或使用 twine
    python -m twine upload dist/*
    
  4. 驗證發佈

    # 檢查套件是否成功發佈
    pip install icsc-ava-upload-toolkit
    
    # 或使用 uv
    uv add icsc-ava-upload-toolkit
    

發佈到測試 PyPI

如需先測試發佈流程:

# 上傳到測試 PyPI
uv publish --publish-url https://test.pypi.org/legacy/

# 從測試 PyPI 安裝
pip install --index-url https://test.pypi.org/simple/ icsc-ava-upload-toolkit

Git 標籤管理

發佈時建議建立 Git 標籤:

# 建立標籤
git tag v1.0.0

# 推送標籤到遠端
git push origin v1.0.0

發佈檢查清單

  • 版本號已更新
  • CHANGELOG.md 已更新
  • 所有測試通過
  • 文檔已更新
  • 構建成功
  • 測試 PyPI 驗證通過
  • 正式發佈到 PyPI

授權

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

icsc_ava_upload_toolkit-0.1.4.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

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

icsc_ava_upload_toolkit-0.1.4-py3-none-any.whl (56.7 kB view details)

Uploaded Python 3

File details

Details for the file icsc_ava_upload_toolkit-0.1.4.tar.gz.

File metadata

  • Download URL: icsc_ava_upload_toolkit-0.1.4.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for icsc_ava_upload_toolkit-0.1.4.tar.gz
Algorithm Hash digest
SHA256 a07b28bde3a9b41e405c031921544d18edf794a191fc3e92a417a9df99d6da17
MD5 63be7c7e2b49e9e3b9c7a81ff9ed3915
BLAKE2b-256 40a2a77a41a42bbcf002f4fb2dca05c856c5b6fbffd79bdc2e82970df71cdfd6

See more details on using hashes here.

File details

Details for the file icsc_ava_upload_toolkit-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: icsc_ava_upload_toolkit-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 56.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for icsc_ava_upload_toolkit-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 db6269f45b43a6d693cb7c6d52eca0b60f2fee05d5c7420704b00fa08a82908c
MD5 f2634a121bb5e1691c11315cf2450033
BLAKE2b-256 6bd0932c2cb27768fdeca5731e4ef04cbd5b200a8e879e4bb02f4bb8d85c9d2b

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