google-labs-jules[bot]
Configure repo for Hugging Face Spaces with MCP support
108bca8
import gradio as gr
from .tools import (
sync_provider_from_npi,
add_or_update_credential,
list_expiring_credentials,
get_provider_snapshot
)
def create_demo():
"""
Creates the Gradio interface for the MCP server.
"""
# Create the Gradio interface
# We use a TabbedInterface to organize the tools if accessed via UI,
# but primarily they are exposed as MCP tools.
# Tool 1: sync_provider_from_npi
iface_sync = gr.Interface(
fn=sync_provider_from_npi,
inputs=[gr.Textbox(label="NPI")],
outputs=gr.JSON(label="Provider Data"),
description="Syncs a provider's data from the NPI registry.",
flagging_mode="never"
)
# Tool 2: add_or_update_credential
iface_add_cred = gr.Interface(
fn=add_or_update_credential,
inputs=[
gr.Number(label="Provider ID", precision=0),
gr.Textbox(label="Type"),
gr.Textbox(label="Issuer"),
gr.Textbox(label="Number"),
gr.Textbox(label="Expiry Date (YYYY-MM-DD)"),
],
outputs=gr.JSON(label="Credential Data"),
description="Adds or updates a credential for a provider.",
flagging_mode="never"
)
# Tool 3: list_expiring_credentials
iface_expiring = gr.Interface(
fn=list_expiring_credentials,
inputs=[
gr.Number(label="Window Days", precision=0),
gr.Textbox(label="Department", value=None),
gr.Textbox(label="Location", value=None),
],
outputs=gr.JSON(label="Expiring Credentials"),
description="Lists credentials expiring within a certain number of days.",
flagging_mode="never"
)
# Tool 4: get_provider_snapshot
iface_snapshot = gr.Interface(
fn=get_provider_snapshot,
inputs=[
gr.Number(label="Provider ID", precision=0, value=None),
gr.Textbox(label="NPI", value=None),
],
outputs=gr.JSON(label="Provider Snapshot"),
description="Gets a snapshot of a provider's data including credentials and alerts.",
flagging_mode="never"
)
demo = gr.TabbedInterface(
[iface_sync, iface_add_cred, iface_expiring, iface_snapshot],
["Sync Provider", "Add/Update Credential", "List Expiring", "Provider Snapshot"]
)
return demo
if __name__ == "__main__":
demo = create_demo()
# Launch with mcp_server=True to enable MCP endpoints
demo.launch(mcp_server=True)