AgentDank:

AgentDank:

用于大麻数据集的“模型上下文协议”(MCP)服务器。

AgentDank

研究与数据
访问服务器

README

AgentDank:    dank-mcp

dank-mcp 是一个模型上下文协议 (MCP) 服务器,用于回答有关支持的 Cannabis 数据集的问题。它由 AgentDank 提供,仅用于教育和合法目的。

以下是与 Claude Desktop 的示例对话。您正在 Claude.ai 网站上查看这些链接;当您自己使用此 dank-mcp 时,您必须使用 Claude Desktop 才能使用 MCP 服务器。在聊天中,您可以展开“工具调用”部分以查看 SQL 请求和 CSV 结果。

<p align="center"><video controls src="https://private-user-images.githubusercontent.com/26842/430672597-adb8e56f-178d-4646-9e0f-4fcf57614dea.mp4" title="AgentDank "></video></p>


目前支持以下数据集:

您可以在 AgentDant dank-data 存储库中找到这些数据集的快照。

安装

虽然我们希望拥有预构建的二进制文件和 Homebrew 包,但我们现在遇到了问题。因此,首选的安装方式是使用 go install从源代码构建

$ go install github.com/AgentDank/dank-mcp@latest

它将安装在您的 $GOPATH/bin 目录中,通常是 ~/go/bin

与 LLM 一起使用

要使用此 dank-mcp MCP 服务器,您必须配置您的主机程序以使用它。我们将以 Claude Desktop 为例进行说明。我们必须在我们的系统中找到 dank-mcp 程序;下面的示例显示了 dank-mcp 通过我的 go install 安装的位置。

以下配置 JSON(也在存储库中,名为 mcp-config.json)设置了此项:

{
    "mcpServers": {
      "dank": {
        "command": "~/go/bin/dank-mcp",
        "args": [
          "--root", "~",
        ]
      }
    }
  }

Claude Desktop

使用 Claude Desktop,您可以按照 他们的配置教程,但替换为上面的配置。完成配置后,您可以向 Claude 提问,它将使用 dank-mcp 服务器。

以下是与 Claude Desktop 的示例对话。请记住,您正在 Claude.ai 网站上查看这些链接,但您必须使用 Claude Desktop 才能使用 MCP 服务器。您可以点击进入“工具调用”以查看 SQL 请求和 CSV 结果。

Ollama 和 mcphost

我目前在使用此功能时遇到问题,但为感兴趣的人保留了说明。

对于本地推理,有一些 MCP 主机支持 Ollama。您可以使用任何 支持“工具”的 Ollama LLM。我们尝试了 mcphost,它由 mcp-go 的开发者编写,该库为我们完成了繁重的工作。

以下是如何使用上述配置(存储在 mcp-config.json 中)安装和运行它:

$ go install github.com/mark3labs/mcphost@latest
$ ollama pull llama3.3
$ mcphost -m ollama:llama3.3 --config mcp-config.json
...chat away...

命令行用法

以下是命令行帮助:

usage: ./bin/dank-mcp [opts]

      --db string         要使用的 DuckDB 数据文件(对于内存中使用 :memory: 或 '') (default "dank-mcp.duckdb")
      --dump              仅下载文件并填充数据库,不启动 MCP 服务器
  -h, --help              显示帮助
  -l, --log-file string   日志文件目标(或 MCP_LOG_FILE 环境变量)。默认为 stderr
  -j, --log-json          以 JSON 格式记录(默认为纯文本)
  -n, --no-fetch          不获取任何数据,仅使用当前数据库中的数据
      --root string       设置 '.dank' 目录的根位置
      --sse               使用 SSE 传输(默认为 STDIO 传输)
      --sse-host string   host:port 以监听 SSE 连接
  -t, --token string      ct.data.gov 应用程序令牌
  -v, --verbose           详细日志记录

您可以通过运行 dank-mcp --dump 来下载和转储数据。此数据的快照在 AgentDank 的 dank-data 存储库 中进行管理。

$ dank-mcp --dump
time=2025-04-03T18:18:03.177-04:00 level=INFO msg=dank-mcp
time=2025-04-03T18:18:03.185-04:00 level=INFO msg="fetching brands from ct.data.gov"
time=2025-04-03T18:18:24.055-04:00 level=INFO msg="inserting brands into db" count=26499
time=2025-04-03T18:18:52.533-04:00 level=INFO msg=finished

数据清理

由于上游数据集并不完美,我们必须对其进行“清理”。这些做法带有主观性,但由于这是开源的,您可以检查我们如何通过检查代码来清理它。例如:

  • CT 品牌清理
  • 从文本测量中提取“痕迹”值

通常,我们只是删除奇怪的字符。我们将检测到的“痕迹”量视为 0 -- 即使这样,对于哪个字段条目实际上意味着“痕迹”也存在一个决定。

我们还删除了具有荒谬数据的行 -- 尽管我很喜欢 90,385% THC 产品,但我认为它并不真正存在。在这种情况下,这是一个不正确的十进制点(通过查看标签图片),但并非每张图片都验证每个错误。这也很痛苦 -- 但也许多模式视觉 LLM 可以对此有所帮助?

构建

构建使用 task 执行:

$ task
task: [build] go build -o dank-mcp cmd/dank-mcp/main.go

设计说明

这是对 MCP 和此数据表面的一次快速实验。在当前设计中,dank-mcp 获取数据集,清理它,并使用它填充 DuckDB;然后,它使用自定义 MCP 服务器呈现该 DuckDB。

这可以分解为不同的工具。fetch/clean/download 可以是独立的,我们已经将数据发布到 dank-data 存储库。还有 MotherDuck 的通用 mcp-server-motherduck,它可以与任何 DuckDB 文件一起使用。因此,该 MCP 服务器可以从该存储库中获取 DuckDB 文件。

我认为这里的一个方面是 dank-mcp 将拥有一组特定于领域的提示和工具?


贡献和行为准则

欢迎提出拉取请求和问题。或者 fork 它。你做你自己。

无论哪种方式,都要遵守我们的 行为准则。可以耍花招,但不要做混蛋。

致谢和许可

版权所有 (c) 2025 Neomantra Corp. 由 Evan Wies 为 AgentDank 编写。

MIT 许可证 下发布,请参阅 LICENSE.txt


AgentDank 团队使用 :herb: 和 :fire: 制作。

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python