Cargo.toml•4.7 kB
[package]
name = "sparql-mcp"
description = "A Model Context Protocol (MCP) server exposing an HTTP POST endpoint to help users write SPARQL queries for various open-access SPARQL endpoints, developed for the SIB Expasy portal."
version = "0.0.1"
authors = ["Vincent Emonet <vincent.emonet@gmail.com>"]
edition = "2024"
repository = "https://github.com/sib-swiss/sparql-mcp"
readme = "./README.md"
license-file = "LICENSE"
keywords = ["sparql", "llm", "mcp", "open data"]
categories = ["science", "data"]
[lib]
path = "src/lib.rs"
crate-type = ["cdylib", "rlib"]
[[bin]]
name = "sparql-mcp"
path = "src/main.rs"
[dependencies]
rmcp = { version = "0.6", features = [
"server",
"transport-streamable-http-server",
"transport-sse-server",
"transport-io",
"client",
"transport-streamable-http-client",
"transport-streamable-http-client-reqwest",
"transport-child-process",
"tower",
# "reqwest",
# "auth"
] }
tokio = { version = "1", features = ["full"] }
# features = ["rt-multi-thread", "macros", "net", "time", "io-util", "sync", "signal"]
futures-util = "0.3"
async-stream = "0.3"
uuid = { version = "1.0", features = ["v4"] }
axum = { version = "0.8", features = ["macros"] }
axum-openapi3 = "0.2"
utoipa = { version = "5", features = ["macros", "axum_extras", "debug"] }
utoipa-swagger-ui = { version = "9", features = ["axum"] }
utoipa-axum = { version = "0.2" }
tower-http = { version = "0.6", features = ["cors", "fs"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = [
"env-filter",
"std",
"fmt",
] }
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
llm = { git = "https://github.com/vemonet/llm", branch = "add-normalize-response", default-features = false, features = [
"rustls-tls", "mistral", "groq", "openai", "openrouter",
] }
spargebra = "0.3"
lancedb = "0.21"
arrow = "55.1"
oxigraph = "0.4"
fastembed = "5.1"
clap = { version = "4.5", features = ["derive", "env"] }
# regex = "1.11.2"
# tokio-stream = "0.1"
# schemars = { version = "1", features = ["derive"] }
# [patch.crates-io]
# native-tls = { version = "0.2.14", optional = true, default-features = false }
[profile.release]
lto = true
[package.metadata.release]
push = true
pre-release-hook = ["git-cliff", "-o", "CHANGELOG.md", "--tag", "{{version}}"]
# post-release-hook = ["bash", "-lc", "git add CHANGELOG.md && git diff-index --quiet HEAD || git commit --amend --no-edit"]
[package.metadata.git-cliff.git]
commit_parsers = [
{ message = "^feat", group = "⛰️ Features" },
{ message = "^fix", group = "🐛 Bug Fixes" },
{ message = "^doc", group = "📚 Documentation" },
{ message = "^perf|DataOriented", group = "⚡ Performance" },
{ message = "^refactor", group = "🚜 Refactor" },
{ message = "^style|Formatting", group = "🎨 Styling" },
{ message = "^test", group = "🧪 Testing" },
{ message = "^ci", group = "⚙️ Continuous Integration" },
{ message = "^chore", group = "🛠️ Miscellaneous Tasks" },
{ body = ".*security", group = "🛡️ Security" },
{ message = "^revert", group = "◀️ Revert" },
]
conventional_commits = true
filter_unconventional = true
split_commits = false
protect_breaking_commits = true # Dont skip breaking changes when matching a skipping commit_parser
filter_commits = false
tag_pattern = "v?[0-9].*"
topo_order = false # Sort the tags topologically
sort_commits = "oldest"
[package.metadata.git-cliff.changelog]
header = """
# 📜 Changelog\n
All notable changes to this project will be documented in this file.\n
"""
# Template for the changelog: https://keats.github.io/tera/docs
body = """
{% if version %}\
{% if previous.version %}\
## [{{ version | trim_start_matches(pat="v") }}](<REPO>/compare/{{ previous.version }}..{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [{{ version | trim_start_matches(pat="v") }}](<REPO>/tree/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
{% endif %}\
{% else %}\
## [unreleased]
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | upper_first }}
{% for commit in commits %}
- {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first | trim }} - ([{{ commit.id | truncate(length=7, end="") }}](<REPO>/commit/{{ commit.id }}))\
{% endfor %}
{% endfor %}\n
"""
trim = true
footer = """
<!-- generated by git-cliff -->
"""
postprocessors = [
{ pattern = '<REPO>', replace = "https://github.com/sib-swiss/sparql-mcp" },
]