Birden fazla veritabanı türünü destekleyen (PostgreSQL, Redshift, CockroachDB, MySQL, RDS MySQL, Microsoft SQL Server, BigQuery, Oracle DB ve SQLite) evrensel MCP sunucusu.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"theralabs-legion-mcp": {
"command": "python",
"args": [
"-m",
"legion_mcp"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/TheRaLabs/legion-mcp.git ~/.mcp/legion-mcp
cd ~/.mcp/legion-mcp Legion Query Runner ile veritabanlarındaki verilere erişmenize ve sorgu yapmanıza yardımcı olan, Model Context Protocol (MCP) Python SDK'sı entegrasyonlu bir sunucudur.
Bu araç Legion AI tarafından sağlanmaktadır. Tam özellikli ve tam güçlü yapay zeka veri analitik aracını kullanmak için lütfen siteyi ziyaret edin. Desteklemesini istediğiniz bir veritabanı varsa bize e-posta gönderin.
Veritabanı MCP, diğer veritabanı erişim çözümlerinden birkaç zorlayıcı nedenle öne çıkmaktadır:
İster veritabanı erişimine ihtiyaç duyan yapay zeka ajanları oluşturuyor olun ister birden çok veritabanına birleşik bir arayüz istemiş olun, Veritabanı MCP geliştirme süresini ve karmaşıklığını önemli ölçüde azaltan akamçalı bir çözüm sağlar.
| Veritabanı | DB_TYPE kodu |
|---|---|
| PostgreSQL | pg |
| Redshift | redshift |
| CockroachDB | cockroach |
| MySQL | mysql |
| RDS MySQL | rds_mysql |
| Microsoft SQL Server | mssql |
| Big Query | bigquery |
| Oracle DB | oracle |
| SQLite | sqlite |
Legion Query Runner kütüphanesini konektör olarak kullanıyoruz. Daha fazla bilgi için api dokümanlarına bakabilirsiniz.
Model Context Protocol (MCP), yapay zeka uygulamalarında bağlamı korumanın bir spesifikasyonudur. Bu sunucu MCP Python SDK'sını kullanarak:
Tek veritabanı yapılandırması için:
Çok veritabanı yapılandırması için:
Yapılandırma formatı veritabanı türüne göre değişir. Veritabanına özel yapılandırma detayları için API dokümanlarına bakın.
uv kullanırken, belirli bir kurulum gerekli değildir. database-mcp'yi doğrudan çalıştırmak için uvx kullanacağız.
UV Yapılandırma Örneği (Tek Veritabanı):
DB_TYPE ve DB_CONFIG'i bağlantı bilgileriniz ile değiştirin.
{
"mcpServers": {
"database-mcp": {
"command": "uvx",
"args": [
"database-mcp"
],
"env": {
"DB_TYPE": "pg",
"DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}"
},
"disabled": true,
"autoApprove": []
}
}
}
UV Yapılandırma Örneği (Birden Çok Veritabanı):
{
"mcpServers": {
"database-mcp": {
"command": "uvx",
"args": [
"database-mcp"
],
"env": {
"DB_CONFIGS": "[{\"id\":\"pg_main\",\"db_type\":\"pg\",\"configuration\":{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"postgres\"},\"description\":\"PostgreSQL Database\"},{\"id\":\"mysql_data\",\"db_type\":\"mysql\",\"configuration\":{\"host\":\"localhost\",\"port\":3306,\"user\":\"root\",\"password\":\"pass\",\"database\":\"mysql\"},\"description\":\"MySQL Database\"}]"
},
"disabled": true,
"autoApprove": []
}
}
}
pip üzerinden kurun:
pip install database-mcp
PIP Yapılandırma Örneği (Tek Veritabanı):
{
"mcpServers": {
"database": {
"command": "python",
"args": [
"-m", "database_mcp",
"--repository", "path/to/git/repo"
],
"env": {
"DB_TYPE": "pg",
"DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}"
}
}
}
}
python mcp_server.py
export DB_TYPE="pg" # veya mysql, postgresql, vb.
export DB_CONFIG='{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
uv run src/database_mcp/mcp_server.py
export DB_CONFIGS='[{"id":"pg_main","db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"id":"mysql_users","db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]'
uv run src/database_mcp/mcp_server.py
Bir ID belirtmezseniz, sistem otomatik olarak veritabanı türü ve açıklamasına göre bir tane oluşturacaktır:
export DB_CONFIGS='[{"db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]'
# ID'ler "pg_postgres_0" ve "my_mysqldb_1" gibi şeyler olarak oluşturulacak
uv run src/database_mcp/mcp_server.py
python mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
python mcp_server.py --db-configs '[{"id":"pg_main","db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"id":"mysql_users","db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]'
Her veritabanı için id alanını kullanarak özel ID'ler belirtebileceğinizi veya sistemin bunları veritabanı türü ve açıklamasına göre oluşturmasına izin verebileceğinizi unutmayın.
Birden çok veritabanına bağlanırken, her sorgu için hangi veritabanının kullanılacağını belirtmeniz gerekir:
list_databases aracını kullanınget_database_info kullanınfind_table kullanınexecute_query, get_table_columns vb. araçlara db_id parametresini sağlayınVeritabanı bağlantıları dahili olarak DbConfig nesnelerinin bir sözlüğü olarak yönetilir ve her veritabanının benzersiz bir ID'si vardır. Şema bilgisi, her tablo adını ve sütun bilgisini içeren bir tablo nesneleri listesi olarak temsil edilir.
select_database istemi kullanıcıları veritabanı seçim süreci aracılığıyla yönlendirir.
Veritabanı şemaları tablo nesnelerinin bir listesi olarak temsil edilir ve her tablo sütunları hakkında bilgi içerir:
[
{
"name": "users",
"columns": [
{"name": "id", "type": "integer"},
{"name": "username", "type": "varchar"},
{"name": "email", "type": "varchar"}
]
},
{
"name": "orders",
"columns": [
{"name": "id", "type": "integer"},
{"name": "user_id", "type": "integer"},
{"name": "product_id", "type": "integer"},
{"name": "quantity", "type": "integer"}
]
}
]
Bu temsil, tablo ve sütun bilgilerine programlı olarak erişmeyi kolay kılırken temiz bir hiyerarşik yapı tutar.
| Kaynak | Açıklama |
|---|---|
resource://schema/{database_id} |
Bir veya tüm yapılandırılmış veritabanlarının şemalarını alın |
| Araç | Açıklama |
|---|---|
execute_query |
Bir SQL sorgusu yürütün ve sonuçları markdown tablosu olarak döndürün |
execute_query_json |
Bir SQL sorgusu yürütün ve sonuçları JSON olarak döndürün |
get_table_columns |
Belirli bir tablo için sütun adlarını alın |
get_table_types |
Belirli bir tablo için sütun türlerini alın |
get_query_history |
Son sorgu geçmişini alın |
list_databases |
Tüm mevcut veritabanı bağlantılarını listeleyin |
get_database_info |
Şema dahil olmak üzere bir veritabanı hakkında ayrıntılı bilgi alın |
find_table |
Belirli bir tablonun hangi veritabanında olduğunu bulun |
describe_table |
Sütun adları ve türleri dahil olmak üzere bir tablonun ayrıntılı açıklamasını alın |
get_table_sample |
Bir tablodaki verinin bir örneğini alın |
execute_query, get_table_columns vb. gibi tüm veritabanına özgü araçlar, hangi veritabanının kullanılacağını belirtmek için db_id parametresi gerektirir.
| İstem | Açıklama |
|---|---|
sql_query |
Veritabanına karşı bir SQL sorgusu oluşturun |
explain_query |
Bir SQL sorgusunun ne yaptığını açıklayın |
optimize_query |
Daha iyi performans için bir SQL sorgusunu optimize edin |
select_database |
Kullanıcıya hangi veritabanını kullanacağını seçmesinde yardımcı olun |
inspektörü başlatmak için bunu çalıştırın
npx @modelcontextprotocol/inspector uv run src/database_mcp/mcp_server.py
ardından komut giriş alanında şuna benzer bir şey ayarlayın
run src/database_mcp/mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
uv pip install -e ".[dev]"
pytest
# Derleme yapılarını temizleyin
rm -rf dist/ build/
# Varsa .egg-info dizinlerini kaldırın
find . -name "*.egg-info" -type d -exec rm -rf {} + 2>/dev/null || true
# Paketi derleyin
uv run python -m build
# PyPI'ye yükleyin
uv run python -m twine upload dist/*
Bu depo GPL lisansı altında lisanslanmıştır
Veritabanları için kolay, hızlı ve güvenli araçlar sağlayan açık kaynak MCP sunucusu.
Baserow veritabanı entegrasyonu ile tablo arama, listeleme ve satır oluşturma, okuma, güncelleme ve silme işlemlerini gerçekleştirebilirsiniz.
Postgres geliştirme ve operasyonları için kapsamlı MCP sunucusu; performans analizi, ayarlama ve sağlık kontrolleri için araçlar içerir.
Supabase'in resmi MCP sunucusu, AI asistanlarını doğrudan Supabase projenize bağlayarak tablo yönetimi, config getirme ve veri sorgulama gibi işlemleri gerçekleştirmelerine olanak tanır.
NodeJS'de MySQL veritabanı entegrasyonu, yapılandırılabilir erişim kontrolleri ve schema incelemesi özellikleri ile sağlanır.
A Qdrant MCP server