cloud9 / app.py
sachin-philip's picture
Update app.py
ef4b0d7 verified
import gradio as gr
from modules.raindrop import get_latest_feed, add_bookmark, search_by_tag, search_bookmarks
# Introduction content
INTRO_CONTENT = """
# Welcome to Raindrop.io MCP Interface
This interface allows you to interact with your Raindrop.io bookmarks through various functions:
## Available Features:
1. **Latest Feed** - Get your most recent bookmarks
2. **Add Bookmark** - Add new bookmarks to your collection
3. **Search by Tag** - Find bookmarks with specific tags
4. **Search Bookmarks** - Search through your bookmarks by keywords
## Setup Requirements:
Make sure you have set the `RAINDROP_TOKEN` environment variable with your Raindrop.io API token.
## How to get your API token:
1. Go to https://app.raindrop.io/settings/integrations
2. Create a new integration
3. Copy the generated token
4. Set it as an environment variable: `export RAINDROP_TOKEN="your_token_here"`
Enjoy managing your bookmarks!
"""
raindrop_mcp = gr.TabbedInterface(
interface_list=[
gr.Interface(
fn=lambda: INTRO_CONTENT,
inputs=[],
outputs=gr.Markdown(label="Introduction"),
title="Introduction",
description="Welcome to the Raindrop.io MCP Interface"
),
gr.Interface(
fn=get_latest_feed,
inputs=gr.Number(label="Number of bookmarks", value=10, minimum=1, maximum=50),
outputs=gr.Textbox(label="Latest Feed", lines=10),
title="Get Latest Feed",
description="Fetch the most recent bookmarks from your Raindrop.io collection"
),
# gr.Interface(
# fn=add_bookmark,
# inputs=[
# gr.Textbox(label="URL", placeholder="https://example.com"),
# gr.Textbox(label="Title (optional)", placeholder="Bookmark title"),
# gr.Textbox(label="Description (optional)", placeholder="Bookmark description"),
# gr.Textbox(label="Tags (comma-separated, optional)", placeholder="tag1, tag2, tag3"),
# gr.Number(label="Collection ID (optional)", value=0)
# ],
# outputs=gr.Textbox(label="Result", lines=5),
# title="Add Bookmark",
# description="Add a new bookmark to your Raindrop.io collection"
# ),
gr.Interface(
fn=search_by_tag,
inputs=[
gr.Textbox(label="Tag", placeholder="Enter tag to search for"),
gr.Number(label="Collection ID (optional)", value=0),
gr.Number(label="Count", value=10, minimum=1, maximum=50),
gr.Textbox(label="From Date (YYYY-MM-DD, optional)", placeholder="2024-01-01"),
gr.Textbox(label="To Date (YYYY-MM-DD, optional)", placeholder="2024-12-31")
],
outputs=gr.Textbox(label="Search Results", lines=10),
title="Search by Tag",
description="Search for bookmarks with a specific tag"
),
gr.Interface(
fn=search_bookmarks,
inputs=[
gr.Textbox(label="Search Query", placeholder="Enter search terms"),
gr.Number(label="Collection ID (optional)", value=0),
gr.Number(label="Count", value=10, minimum=1, maximum=50),
gr.Textbox(label="From Date (YYYY-MM-DD, optional)", placeholder="2024-01-01"),
gr.Textbox(label="To Date (YYYY-MM-DD, optional)", placeholder="2024-12-31")
],
outputs=gr.Textbox(label="Search Results", lines=10),
title="Search Bookmarks",
description="Search for bookmarks by keyword or text content"
)
],
tab_names=["Introduction", "Latest Feed", "Search by Tag", "Search Bookmarks"]
)
if __name__ == "__main__":
raindrop_mcp.launch(mcp_server=True)