Danbooru Turso Sync
Sync Danbooru character data to your Turso database. Keep your dataset complete and up to date automatically. Power search, analytics, or app features with fresh data.
Description
Danbooru-Turso MCP Server
Simple MCP server for collecting Danbooru character data and storing it in Turso database.
🎯 Purpose
Automatically collect and save Danbooru character data to Turso cloud database with automatic upsert (updates existing posts).
✨ Features
- 📥 Collect character data from Danbooru API with automatic pagination
- 💾 Store in Turso cloud database
- 🔄 Auto-update existing posts (INSERT OR REPLACE)
- ⚡ Fast & Simple - Single tool, single purpose
🛠️ Tool
collect_and_save
Collect all posts for a character tag and save to Turso database.
Parameters:
tag(required): Character tag to collect (e.g., "yatogami_tenka")max_posts(optional): Maximum number of posts to collect
Example:
{
"tag": "yatogami_tenka",
"max_posts": 1000
}
Response:
{
"success": true,
"tag": "yatogami_tenka",
"collected": 119,
"new_posts": 111,
"updated_posts": 8
}
📊 Database Schema
This MCP uses the following table structure:
CREATE TABLE IF NOT EXISTS posts (
id INTEGER PRIMARY KEY,
tags TEXT NOT NULL,
tag_count INTEGER NOT NULL,
rating TEXT NOT NULL,
score INTEGER NOT NULL,
fav_count INTEGER NOT NULL,
file_url TEXT NOT NULL,
pixiv_id INTEGER
);
Note: If you need additional fields (like image_width, image_height, created_at, etc.),
you can modify src/services/turso.ts to include them. The table is only created
if it doesn't exist (CREATE TABLE IF NOT EXISTS), so existing data is safe.
Danbooru API returns 50+ fields per post. This MCP stores the most commonly used fields for performance and simplicity. The current schema covers the essential data for most use cases.
🚀 Deployment
Smithery (Recommended)
- Push to GitHub
- Deploy on Smithery with environment variables:
TURSO_DATABASE_URL- Your Turso database URLTURSO_AUTH_TOKEN- Your Turso auth token
Local Development
npm install
npm run build
npm start
📦 Environment Variables
TURSO_DATABASE_URL- Turso database URL (required)TURSO_AUTH_TOKEN- Turso auth token (required)PORT- Server port (default: 3000)
📖 Usage Example
Collect data:
collect_and_save({
tag: "yatogami_tenka",
max_posts: 500
})
Response:
- Shows how many posts were collected
- Shows how many were new vs updated
- Handles duplicates automatically with UPSERT
📝 License
MIT
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!