QVeris

竞品对比与选型

MCP 与函数调用

厘清 MCP 与 Function Calling 在协议发现、函数结构与执行边界方面的职责边界。

发布日期: · QVeris团队制作

展示市场数据、图表或财务报告的金融研究工作场景
评估工作流中的金融研究场景;图片仅作场景示意,不代表产品界面或基准测试。

先看结论

函数调用让模型生成结构化参数,请求使用某个工具;由应用验证并执行。MCP 规范 AI 应用与工具或上下文服务器之间的通信。两者可以组合使用,但都不会自动选择最安全的工具、保证授权或验证金融数据。

例如,查询 AAPL 股价需要明确代码和市场,选择权限合适的数据源,执行工具调用,并返回事件时间、获取时间、币种和行情覆盖。模型可提出调用请求,由宿主应用检查结果是否可用。

什么是函数调用?

模型 API 接收工具定义,可以返回函数名或工具标识及结构化参数。应用仍负责执行处理函数、检查权限、验证参数,并把工具结果返回对话。模型生成调用不代表执行成功。

不同提供商的请求格式和 Schema 子集不同。适配器可处理部分差异,但仍应测试参数校验、并行调用、流式响应、重试及模型选项。工具列表不必永久固定,应用可以先发现候选项,再为每次请求提供较小的工具集。

OpenAI 函数调用文档可从 OpenAI 函数调用文档 了解该提供商接口;其他模型应核对各自官方文档。

什么是 MCP?

MCP 宿主协调客户端访问独立服务器;服务器可暴露工具、资源与提示词。本地 stdio 与远程 Streamable HTTP 的部署和鉴权要求不同,应使用两端支持的传输方式及协议版本。

以当前规范为准。规范入口已于 2026 年 3 月 6 日核对;较早示例可能采用旧的生命周期规则。应明确测试版本发现、传输支持和可选功能。

MCP 官方规范 · 官方架构概览

影响实现的七项差异

维度函数调用MCP
职责面向模型的调用请求应用与服务器之间的上下文和工具协议
执行应用调用处理函数客户端请求服务器操作
发现应用提供候选工具服务器暴露可发现能力
兼容性模型 API 与 Schema 适配协议版本、客户端与服务器支持
安全应用权限与输入检查传输授权与宿主及服务器策略
部署本地处理函数或远程服务本地进程或远程端点
成本Token、执行及运维同类费用及协议基础设施成本

MCP 不会让工具 Schema 自动从模型上下文中消失。Token 用量取决于宿主发送内容、缓存、发现策略及模型 API。角色权限、留存、审批与审计日志也需要实际实现,不能仅凭支持协议就认定具备。

如何组合使用

可采用以下顺序:发现相关工具,检查契约,把必要定义提供给模型,验证模型请求的参数和授权,通过适当客户端执行,再验证返回结果。沿途记录供应商、工具版本、请求标识和时间戳。

金融研究中的回退必须满足相同市场、币种、复权、时效与许可契约;否则应披露降级并确认用户是否接受。不得将空响应或超时变成虚构价格,也不能静默复用过期数据。

何时选择哪种方式

工具稳定的小型应用可采用模型工具调用与普通处理函数。多个客户端共享工具时,可评估 MCP。生产应用也可组合使用。不要仅按工具数量决策,还需考虑部署责任、凭证、可用性、Schema 演进及适配维护成本。

应在相同工作负载下测量候选路径,记录模型与工具版本、Schema Token、缓存状态、传输、首 Token 及完整任务延迟、错误率、重试和总成本。公布基准测试时说明样本量及环境;MCP 不存在通用固定延迟附加值或自动 Token 节省比例。

QVeris 的位置

QVeris 通过支持的接入方式提供发现、检查与能力调用入口,补充宿主及编排层。宿主仍负责用户意图、权限与结果验证;底层数据覆盖和许可取决于所选提供商。

QVeris MCP 接入文档 · REST API 参考

Discover/Inspect 免费;注册验证后一次性获得 1,000 credits;$19 购买 10,000 credits;credits 永不过期;无月费、无自动续费。开发测试与生产中的付费执行都可能消耗 credits。

credits 是计费单位,不是固定调用次数。应检查具体工具,并将重试、提供商费用、模型调用及运维投入纳入同口径对比。

QVeris 当前定价

实现示例

以下保留原代码示例。执行前按当前文档核对包版本、协议版本、API 名称和凭证;示例不代表已成功调用的记录。

// Define a tool schema (OpenAI format example)
{
  "type": "function",
  "function": {
    "name": "get_stock_price",
    "description": "Get current stock price",
    "parameters": {
      "type": "object",
      "properties": {
        "symbol": { "type": "string" }
      }
    }
  }
}
// Application code — tools are hardcoded prompt content
const tools = [{ name: "get_stock_price", ... }];

// Every request includes ALL tool schemas
const response = await openai.chat.completions.create({
  model: "gpt-4",
  tools: tools,  // static, predefined
  messages: [{ role: "user", content: "What's AAPL at?" }]
});
# MCP client dynamically discovers tools at runtime
from mcp import ClientSession

# Connect to any MCP Server
session = await ClientSession.connect(server_url)

# Discover tools — no hardcoded schemas needed
tools = await session.list_tools()
# Returns: dynamic list of available tools with schemas

# Call a discovered tool
result = await session.call_tool("get_stock_price", { "symbol": "AAPL" })
# One command to add QVeris MCP Server to Claude Code
claude mcp add qveris -s user -- npx @qverisai/mcp

# Now your Claude Code agent has access to 10,000+ capabilities
# Just ask: "find me tools for stock market data"
# QVeris discovers, inspects, and calls — all through MCP

常见问题

MCP 能替代模型函数调用吗?

两者处于不同边界。宿主可用模型工具调用表达操作请求,再通过 MCP 与执行服务器通信。

MCP 会自动保护工具安全吗?

不会。需要实现并测试授权、输入校验、适当的用户确认、凭证保护与审计控制。

哪种更便宜?

使用相同数据及模型测量完整任务,计入工具费用、模型 Token、重试、托管及运维工作。

资料来源

本文以 MCP 官方规范和模型 API 官方文档为主要依据。实施前请通过文中链接核对协议版本、API 行为、软件包版本及接入要求。