暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

利用Starrocks搭建mcp-server-starrocks初体验

skylines 2025-12-24
21
今天这期文章,将是今年最后一期技术文章,主要分享一下利用Starrocks搭建mcp-server-starrocks,并初体验一下效果。
什么是MCP ,MCP(Model Context Protocol) 是一种用于规范模型与上下文交互的通信协议,旨在标准化模型输入输出的数据结构、元信息传递及上下文管理机制。通俗的来说,MCP 就像 AI 世界的“USB 接口”,那么MCP Server就是“USB 接口”加数据内容。根据这样的关系,所以mcp-server-starrocks就是适用对接到Starrocks数据库的接口组件以及SR的数据,可以根据下图理解。
1、整个MCP架构中主要有四大核心组件
1)、MCP Host:提供MCP Client与MCP Server沟通的环境与条件。
2)、MCP Client:接通各种MCP Server的代理。
3)、MCP Server:主要存储各类数据的组件。
4)、AI模型:提供智能算法能力。

把MCP相关的组件稍微介绍了一下,接着继续介绍mcp-server-starrocks的搭建过程。搭建整个mcp-server-starrocks以及应用,我们需要以下一些组件:一套Starrocks集群、uv、python3.12、mcp-server-starrocks、deepseek API以及deepchat客户端。
2、Starrocks集群
这个我已经提前准备好,只需要一个单机版的Starrocks数据库。
    [root@srkfk ~]# ps -ef |grep fe
    root        75     2  0 Nov16 ?        00:00:00 [deferwq]
    root      4090 13749  0 17:28 ?        00:00:00 /bin/sh opt/starrocks/starrocks/fe/bin/profiler.sh -e cpu -d 300 -f var/log/starrocks/fe/proc_profile/cpu-profile-20251224-042830.html 13749
    root      4443   898  0 17:31 pts/1    00:00:00 grep --color=auto fe
    root     13749     1  3 Nov27 ?        23:42:02 /usr/local/jdk-11.0.1/bin/java -Dlog4j2.formatMsgNoLookups=true -Xmx6144m -XX:+UseG1GC -Xlog:gc*:/var/log/starrocks/fe/fe.gc.log.:time -Djava.security.policy=/opt/starrocks/starrocks/fe/conf/udf_security.policy com.starrocks.StarRocksFE
    [root@srkfk ~]#  mysql -h127.0.0.1 -P9030 -uroot -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 107
    Server version: 5.1.0 3.3.3-312ed45


    Copyright (c) 20002024Oracle and/or its affiliates.


    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.


    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | _statistics_       |
    | information_schema |
    | mytest             |
    | servicedesk        |
    | sys                |
    +--------------------+
    5 rows in set (0.01 sec)


    3、安装uv

    我们需要uv来运行mcp-server-starrocks,安装uv需要连接公网才行。

      [root@srkfk ~]# wget -qO- https://astral.sh/uv/install.sh | sh
      downloading uv 0.9.13 x86_64-unknown-linux-gnu
      no checksums to verify
      installing to /root/.local/bin
        uv
        uvx
      everything's installed!
      To add $HOME/.local/bin to your PATH, either restart your shell or run:
          source $HOME/.local/bin/env (sh, bash, zsh)
          source $HOME/.local/bin/env.fish (fish)


      [root@srkfk ~]# uv --version
      uv 0.9.13
          

      4、安装python3.12

      安装和运行最新版本的mcp-server-starrocks,需要依赖python 3.12(已经试过安装python 3.10,能安装但不能运行,python 3.11还不知道能不能运行mcp-server-starrocks)。

        --安装python3的依赖包
        yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel \
        sqlite-devel readline-devel tk-devel gdbm-devel db4-devel \
        libpcap-devel xz-devel expat-devel libffi-devel gcc-c++ \


        --解压安装python3.12
        ./configure --prefix=/usr/local/python3.12 --enable-optimizations --with-openssl=/usr/local/openssl --with-ssl-default-suites=openssl


        sudo make -j $(nproc) && sudo make altinstall


        sudo ln -s usr/local/python3.12/bin/python3.12 /usr/bin/python3
        sudo ln -s /usr/local/python3.12/bin/pip3.12 /usr/bin/pip3


        到这里,python 3.12版本基本安装好。上面忘记说了,安装python3,还需要更新openssl至少到OpenSSL 1.1.1版本。

        5、手动安装一些个别工具

        这些个别的工具,是在安装mcp-server-starrocks过程中是需要到的。如果不单独手动安装,安装mcp-server-starrocks过程虽然也会安装,但一般会遇到问题,只能手动安装来解决。

          yum install centos-release-scl
          yum install python3-rpm-macros
          python3 -m pip install pandas --only-binary=:all:
          python3 -m pip install pyarrow --only-binary=:all:


          [root@srkfk ~]# cmake --version
          cmake version 3.28.3
          主要是安装panda、pyarrow和至少cmake 3.25,我这边安装了cmake 3.28.
          6、安装mcp-server-starrocks
            CC=gcc CXX=g++ pip3 install mcp-server-starrocks


            [root@srkfk ~]# pip3 show mcp-server-starrocks
            Name: mcp-server-starrocks
            Version: 0.3.0
            Summary: official MCP server for StarRocks
            Home-page:
            Author:
            Author-email: changbinglin <changbinglin@starrocks.com>
            License: Apache-2.0
            Location: /usr/local/python3.12/lib/python3.12/site-packages
            Requires: adbc-driver-flightsql, adbc-driver-manager, fastmcp, kaleido, loguru, mysql-connector-python, pandas, plotly, pyarrow
            Required-by:

            默认是安装最新版本的mcp-server-starrocks,目前为0.3.0版本,从这里也可以看到,安装mcp-server-starrocks需要adbc-driver-flightsql, adbc-driver-manager, fastmcp, kaleido, loguru, mysql-connector-python, pandas, plotly, pyarrow这些组件。

            7、启动mcp-server-starrocks

            这里需要借助uv使用streamable-http模式启动并运行mcp-server-starrocks,这种模式暂时来说是首选的,后面使用deepchat客户端也比较容易连接并测通。如下

              STARROCKS_URL="starrocks://root:srxxxxxx@192.168.24.18:9030/mytest" uv run mcp-server-starrocks --mode streamable-http --host 192.168.24.18 --port 8000

              root:后面为starrocks数据库root管理用户的密码,如果没有密码,可以启动mcp-server-starrocks,但是连接不到starrocks数据库,就无法查看数据库相关的信息。

              8、安装deepchat并配置deepseek API

              这个下载windows版,直接解压执行安装程序即可。安装好之后,deepchat支持多种大模型,我这环境配置deepseek API即可。

              9、配置连接mcp-server-starrocks

              选择MCP配置菜单,进入新增自定义的MCP Server。

              提交保存后,启用mcp-server-starrocks即可。

              10、通过deepchat使用通用语言查询starrocks数据库相关内容

              11、总结

              以上就是搭建配置mcp-server-starrocks过程,并简单使用它的一些功能。从使用通俗语言进行交互,并反馈回来的结果看,还是比较符合预期效果的。主要还是搭建配置的过程,以及deepchat接通mcp-server-starrocks的过程,遇到不少问题。往后还会根据实际业务的数据,进行调测,让MCP解决实际业务的需求。

              文章转载自skylines,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论