Cover image
Try Now
2025-04-06

使用大麻数据集的工具模型上下文procotol(MCP)服务器。

3 years

Works with Finder

1

Github Watches

0

Github Forks

1

Github Stars

AgentDank:    dank-mcp

dank-mcp is a Model Context Procotol (MCP) server that respond to questions about supported Cannabis Datasets. It is brought to you by AgentDank for educational and legal purposes.

Here's example conversations with Claude Desktop. You are viewing these links on the Claude.ai website; when using this dank-mcp yourself, you must use Claude Desktop to utilize the MCP server. Within the chat, you can expand the Tools call sections to see the SQL requests and CSV results.


Currently the following datasets are supported:

You can find snapshots of these datasets in the AgentDant dank-data repository.

Installation

While we'd like to have pre-built binaries and Homebrew packages, we're having an issue with that right now. So the preferred way to install is using go install or building from source:

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

It will be installed in your $GOPATH/bin directory, which is often ~/go/bin.

Using with LLMs

To use this dank-mcp MCP server, you must configure your host program to use it. We will illustrate with Claude Desktop. We must find the dank-mcp program on our system; the example below shows where dank-mcp is installed with my go install.

The following configuration JSON (also in the repo as mcp-config.json) sets this up:

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

Claude Desktop

Using Claude Desktop, you can follow their configuration tutorial but substitute the configuration above. With that in place, you can ask Claude question and it will use the dank-mcp server.

Here's example conversations with Claude Desktop. Remember you are viewing these links on the Claude.ai website, but you must use Claude Desktop to use the MCP server. You can click into the Tools calls to see the SQL requests and CSV results.

Ollama and mcphost

**I'm currently having issues with this working well, but leaving instructions for those interested. **

For local inferencing, there are MCP hosts that support Ollama. You can use any Ollama LLM that supports "Tools". We experimented with mcphost, authored by the developer of the mcp-go library that peformed the heavy lifting for us.

Here's how to install and run with it with the configuration above, stored in 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...

Command Line Usage

Here is the command-line help:

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

      --db string         DuckDB data file to use (use :memory: or '' for in-memory) (default "dank-mcp.duckdb")
      --dump              Only download files and populate DB, no MCP server
  -h, --help              Show help
  -l, --log-file string   Log file destination (or MCP_LOG_FILE envvar). Default is stderr
  -j, --log-json          Log in JSON (default is plaintext)
  -n, --no-fetch          Don't fetch any data, only use what is in current DB
      --root string       Set root location of '.dank' dir
      --sse               Use SSE Transport (default is STDIO transport)
      --sse-host string   host:port to listen to SSE connections
  -t, --token string      ct.data.gov App Token
  -v, --verbose           Verbose logging

You can download and dump the data by running dank-mcp --dump. Snapshots of this data are curated at AgentDank's dank-data repository.

$ 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

Data Cleaning

Because the upstream datasets are not perfect, we have to "clean" it. Such practices are opinionated, but since this is Open Source, you can inspect how we clean it by examining the code. For example:

  • CT Brands cleaning
  • Extract "trace" values from text measurments

Generally, we simply remove weird characters. We treat detected "trace" amounts as 0 -- and even with that, there's a decision about what field entry actually means "trace".

We also remove rows with riduclous data -- as much as I'd love a 90,385% THC product, I don't think it really exists. In that case, it was an incorrect decimal point (by looking at the label picture), but not every picture validates every error. It's also a pain -- but maybe a multi-modal vision LLM can help with that?

Building

Building is performed with task:

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

Notes on Design

This was quick experiment of the surface of MCPs and this data. In the current design, dank-mcp fetches the dataset, cleans it, populates a DuckDB with it; it then presents that DuckDB with a custom MCP server.

This could be broken into different tools. The fetch/clean/download can be stand-alone, and we already publish data to the dank-data repository. There is MotherDuck's generalized mcp-server-motherduck, which can work with any DuckDB file. So that MCP server could slurp the DuckDB file from that repo instead.

I do think one aspect here is that dank-mcp will have a bundle of Prompts and Tools that will be domain-specific?


Contribution and Conduct

Pull requests and issues are welcome. Or fork it. You do you.

Either way, obey our Code of Conduct. Be shady, but don't be a jerk.

Credits and License

Copyright (c) 2025 Neomantra Corp. Authored by Evan Wies for AgentDank.

Released under the MIT License, see LICENSE.txt.


Made with :herb: and :fire: by the team behind AgentDank.

相关推荐

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Alexandru Strujac
  • Efficient thumbnail creator for YouTube videos

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • Lists Tailwind CSS classes in monospaced font

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • https://appia.in
  • Siri Shortcut Finder – your go-to place for discovering amazing Siri Shortcuts with ease

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • tomoyoshi hirata
  • Sony α7IIIマニュアルアシスタント

  • apappascs
  • 发现市场上最全面,最新的MCP服务器集合。该存储库充当集中式枢纽,提供了广泛的开源和专有MCP服务器目录,并提供功能,文档链接和贡献者。

  • ShrimpingIt
  • MCP系列GPIO Expander的基于Micropython I2C的操作,源自ADAFRUIT_MCP230XX

  • jae-jae
  • MCP服务器使用剧作《无头浏览器》获取网页内容。

  • ravitemer
  • 一个功能强大的Neovim插件,用于管理MCP(模型上下文协议)服务器

  • patruff
  • Ollama和MCP服务器之间的桥梁,使本地LLMS可以使用模型上下文协议工具

  • pontusab
  • 光标与风浪冲浪社区,查找规则和MCP

  • JackKuo666
  • 🔍使AI助手可以通过简单的MCP接口搜索和访问PYPI软件包信息。

  • av
  • 毫不费力地使用一个命令运行LLM后端,API,前端和服务。

  • Mintplex-Labs
  • 带有内置抹布,AI代理,无代理构建器,MCP兼容性等的多合一桌面和Docker AI应用程序。

    Reviews

    2 (1)
    Avatar
    user_wxkJ6QPn
    2025-04-17

    I've been using dank-mcp for a while now, and I'm genuinely impressed. Developed by AgentDank, this tool has become an essential part of my workflow. Its intuitive interface and robust features streamline numerous tasks, saving me valuable time. If you're looking for a reliable and efficient application, I highly recommend checking it out. Explore more at https://github.com/AgentDank/dank-mcp.