目录

MCP 工具描述优化与质量评估

本项目旨在系统性地优化和评估 MCP(Model Context Protocol)服务器中的工具描述(Tool Description),通过自动化提取、多模型对比、提示词工程等手段,提升工具描述的质量,尤其是准确性、功能完整性和信息完备性,同时兼顾简洁性以控制 Token 开销。

工作流程

整体处理流程如下:

  • 从公开的 MCP 服务器源码中提取工具描述与对应代码
  • 利用大模型(LLM)对描述进行优化
  • 从多个维度(Accuracy, Functionality, Information_Completeness, Conciseness, Clarity)进行量化评分
  • 对比不同模型效果,并采用 GEPA 提示词优化方法进一步改进

工具描述提取

我们开发了专用的提取工具,能够自动跳过空仓库或不存在的仓库。该工具将 MCP 服务器源码转换为抽象语法树(AST),并基于常见的工具注册模式进行模式匹配,最终生成 描述-代码对 的集合。每个配对包含工具的自然语言描述及其对应的函数实现,为后续分析提供基础数据。

必要的安装库

pip install tree-sitter=0.24.0
mkdir tree-sitter-libs
cd tree-sitter-libs
git clone https://github.com/tree-sitter/tree-sitter-python.git
git clone https://github.com/tree-sitter/tree-sitter-java.git
git clone https://github.com/tree-sitter/tree-sitter-javascript.git
git clone https://github.com/tree-sitter/tree-sitter-typescript.git
git clone https://github.com/tree-sitter/tree-sitter-go.git
git clone https://github.com/tree-sitter/tree-sitter-c.git
git clone https://github.com/tree-sitter/tree-sitter-cpp.git
mkdir -p build
gcc -shared -o build/my-languages.so \
  tree-sitter-python/src/parser.c \
  tree-sitter-java/src/parser.c \
  tree-sitter-javascript/src/parser.c \
  tree-sitter-typescript/typescript/src/parser.c \
  tree-sitter-go/src/parser.c \
  tree-sitter-c/src/parser.c \
  tree-sitter-cpp/src/parser.c \
  -fPIC

gcc -shared -o build/python.so tree-sitter-python/src/parser.c -fPIC
gcc -shared -o build/java.so tree-sitter-java/src/parser.c -fPIC
gcc -shared -o build/javascript.so tree-sitter-javascript/src/parser.c -fPIC
gcc -shared -o build/typescript.so tree-sitter-typescript/typescript/src/parser.c -fPIC
gcc -shared -o build/go.so tree-sitter-go/src/parser.c -fPIC
gcc -shared -o build/c.so tree-sitter-c/src/parser.c -fPIC
gcc -shared -o build/cpp.so tree-sitter-cpp/src/parser.c -fPIC

import tree_sitter_python
import tree_sitter_java
import tree_sitter_javascript
import tree_sitter_typescript
import tree_sitter_kotlin
import tree_sitter_c_sharp

self.LANGUAGES['java'] = Language(tsjava.language())
self.LANGUAGES['javascript'] = Language(tsjavascript.language())
self.LANGUAGES['typescript'] = Language(tstypescript.language_typescript())
self.LANGUAGES['go'] = Language(tsgo.language())
self.LANGUAGES['c'] = Language(tsc.language())
self.LANGUAGES['cpp'] = Language(tscpp.language())

贡献人

李天峪 杨斯正

关于
23.7 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号