Bifrost Tool Catalog
Complete reference for all tools available through the Bifrost MCP Gateway.
Overview
Bifrost provides 21 tools across 7 domains that agents can invoke. All tools are executed through the Bifrost API and routed to appropriate backends (Norns, n8n, etc.).
Tool Index
| Domain | Tools | Description |
|---|---|---|
| Tasks | 6 | Task and project management |
| Calendar | 2 | Calendar events |
| Home | 2 | Smart home control |
| Shopping | 2 | Shopping lists and inventory |
| Navigation | 3 | Directions and places |
| Observability | 4 | System monitoring |
| Admin | 1 | User management |
| System | 1 | Internal testing |
Tasks Domain
query_tasks
Query tasks with optional filters.
Example Phrases:
- "What's on my todo list?"
- "Show me high priority tasks"
- "What tasks are in the Ravenhelm project?"
Input Schema:
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Filter by status: open, completed, all"
},
"project": {
"type": "string",
"description": "Filter by project name or ID"
},
"limit": {
"type": "integer",
"description": "Maximum results (default 10)"
}
}
}
Example Call:
{
"tool_name": "query_tasks",
"arguments": {
"status": "open",
"limit": 5
}
}
Returns: Array of task objects with id, title, status, due_date, project.
create_task
Create a new task.
Example Phrases:
- "Add a task to call mom"
- "Create a task: review PR by Friday"
- "Remind me to buy groceries tomorrow"
Input Schema:
{
"type": "object",
"required": ["title"],
"properties": {
"title": {
"type": "string",
"description": "Task title (required)"
},
"description": {
"type": "string",
"description": "Detailed description"
},
"project": {
"type": "string",
"description": "Project name or ID"
}
}
}
Example Call:
{
"tool_name": "create_task",
"arguments": {
"title": "Call mom",
"project": "Personal"
}
}
Returns: Created task object with assigned ID.
update_task
Update an existing task's properties.
Example Phrases:
- "Move the dentist task to next week"
- "Change the priority of code review to high"
- "Rename the task to 'Review authentication PR'"
Input Schema:
{
"type": "object",
"required": ["task_id"],
"properties": {
"task_id": {
"type": "string",
"description": "Task ID (required)"
},
"title": {
"type": "string",
"description": "New title"
},
"status": {
"type": "string",
"description": "New status"
}
}
}
Returns: Updated task object.
complete_task
Mark a task as complete.
Example Phrases:
- "Mark the grocery task as done"
- "Complete the code review task"
- "I finished the documentation"
Input Schema:
{
"type": "object",
"required": ["task_id"],
"properties": {
"task_id": {
"type": "string",
"description": "Task ID to complete"
}
}
}
Returns: Confirmation with task details.
query_projects
List available projects.
Example Phrases:
- "What projects do I have?"
- "Show me active projects"
- "List all projects"
Input Schema:
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Filter: active, archived, all"
},
"limit": {
"type": "integer",
"description": "Maximum results"
}
}
}
Returns: Array of project objects.
get_daily_summary
Get a summary of today's tasks and calendar events.
Example Phrases:
- "Give me my daily summary"
- "What do I have going on today?"
- "Brief me on my day"
Input Schema:
{
"type": "object",
"properties": {}
}
Returns: Object with tasks_due, tasks_overdue, calendar_events, summary_text.
Calendar Domain
calendar_read
Read calendar events for a date range.
Example Phrases:
- "What's on my calendar today?"
- "Do I have any meetings tomorrow?"
- "What's my schedule for this week?"
Input Schema:
{
"type": "object",
"properties": {
"days_ahead": {
"type": "integer",
"description": "Number of days to look ahead (default 1)"
}
}
}
Example Call:
{
"tool_name": "calendar_read",
"arguments": {
"days_ahead": 7
}
}
Returns: Array of calendar events with title, start, end, location.
calendar_create
Create a new calendar event.
Example Phrases:
- "Schedule a meeting with John at 3pm Friday"
- "Add dentist appointment tomorrow at 10am"
- "Create an event: team lunch on Monday at noon"
Input Schema:
{
"type": "object",
"required": ["title", "start"],
"properties": {
"title": {
"type": "string",
"description": "Event title (required)"
},
"start": {
"type": "string",
"description": "Start time in ISO format (required)"
},
"end": {
"type": "string",
"description": "End time in ISO format"
}
}
}
Returns: Created event with calendar ID.
Home Domain
home_status
Get current status of Home Assistant entities.
Example Phrases:
- "What's the temperature inside?"
- "Are any lights on?"
- "Is the garage door open?"
- "What's the status of my home?"
Input Schema:
{
"type": "object",
"properties": {}
}
Returns: Object with entity states grouped by domain (lights, climate, locks, etc.).
home_command
Execute a Home Assistant command.
Example Phrases:
- "Turn off the living room lights"
- "Set the thermostat to 72"
- "Lock the front door"
- "Turn on the porch light"
Input Schema:
{
"type": "object",
"required": ["command"],
"properties": {
"command": {
"type": "string",
"description": "Natural language command"
}
}
}
Example Call:
{
"tool_name": "home_command",
"arguments": {
"command": "turn off living room lights"
}
}
Returns: Confirmation of action taken.
Shopping Domain
add_shopping_item
Add an item to the shopping list.
Example Phrases:
- "Add milk to the shopping list"
- "I need to buy eggs"
- "Add 2 loaves of bread"
Input Schema:
{
"type": "object",
"required": ["item"],
"properties": {
"item": {
"type": "string",
"description": "Item name (required)"
},
"quantity": {
"type": "integer",
"description": "Quantity (default 1)"
}
}
}
Returns: Confirmation with item added to Grocy.
query_inventory
Check current inventory or shopping list.
Example Phrases:
- "What do I need from the store?"
- "Do we have coffee?"
- "What's in my pantry?"
Input Schema:
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Filter by category"
}
}
}
Returns: Array of inventory items or shopping list.
Navigation Domain
get_directions
Get turn-by-turn directions between locations.
Example Phrases:
- "How do I get to the airport?"
- "Give me directions to 123 Main Street"
- "Navigate to Whole Foods"
Input Schema:
{
"type": "object",
"required": ["from", "to"],
"properties": {
"from": {
"type": "string",
"description": "Starting location (required)"
},
"to": {
"type": "string",
"description": "Destination (required)"
}
}
}
Returns: Route with steps, distance, and estimated time.
get_travel_time
Get estimated travel time with current traffic.
Example Phrases:
- "How long to get to work?"
- "What's the drive time to downtown?"
- "How long will it take to get to the airport?"
Input Schema:
{
"type": "object",
"required": ["from", "to"],
"properties": {
"from": {
"type": "string",
"description": "Starting location"
},
"to": {
"type": "string",
"description": "Destination"
}
}
}
Returns: Travel time in minutes with traffic conditions.
search_places
Search for places by name or category.
Example Phrases:
- "Find coffee shops near me"
- "Where's the nearest gas station?"
- "Search for Italian restaurants"
Input Schema:
{
"type": "object",
"required": ["query"],
"properties": {
"query": {
"type": "string",
"description": "Search query (required)"
},
"type": {
"type": "string",
"description": "Place type filter"
}
}
}
Returns: Array of places with name, address, distance.
Observability Domain
container_status
Check Docker container health and status.
Example Phrases:
- "Is postgres healthy?"
- "What containers are running?"
- "Check the status of norns-agent"
Input Schema:
{
"type": "object",
"properties": {
"container": {
"type": "string",
"description": "Container name (optional, all if omitted)"
}
}
}
Returns: Container status with health, uptime, resource usage.
query_logs
Search system logs.
Example Phrases:
- "Show me errors from norns-agent"
- "What happened in the last hour?"
- "Find logs mentioning authentication"
Input Schema:
{
"type": "object",
"required": ["query"],
"properties": {
"query": {
"type": "string",
"description": "Log search query (required)"
},
"limit": {
"type": "integer",
"description": "Maximum results (default 50)"
}
}
}
Returns: Array of log entries matching query.
check_metrics
Check system metrics.
Example Phrases:
- "What's the CPU usage?"
- "How much memory is being used?"
- "Check disk space"
Input Schema:
{
"type": "object",
"required": ["metric"],
"properties": {
"metric": {
"type": "string",
"description": "Metric to check: cpu, memory, disk, network"
}
}
}
Returns: Current metric value with thresholds.
grafana_dashboard
Get a link to a Grafana dashboard.
Example Phrases:
- "Show me the system dashboard"
- "Open the Norns metrics"
- "Link to the overview dashboard"
Input Schema:
{
"type": "object",
"properties": {
"dashboard": {
"type": "string",
"description": "Dashboard name"
}
}
}
Returns: Dashboard URL and summary.
Admin Domain
onboard_user
Create a new user account.
Example Phrases:
- "Create an account for john@example.com"
- "Onboard new user Jane Doe"
Input Schema:
{
"type": "object",
"required": ["slack_user_id", "email", "display_name"],
"properties": {
"slack_user_id": {
"type": "string",
"description": "Slack user ID"
},
"email": {
"type": "string",
"description": "User email"
},
"display_name": {
"type": "string",
"description": "Display name"
},
"timezone": {
"type": "string",
"description": "User timezone"
}
}
}
Returns: Created user object with ID.
System Domain
n8n_echo
Test tool for verifying n8n workflow execution.
Input Schema:
{
"type": "object",
"required": ["message"],
"properties": {
"message": {
"type": "string",
"description": "Message to echo back"
}
}
}
Returns: Echoed message confirming n8n connectivity.
API Usage
Execute a Tool
curl -X POST https://bifrost-api.ravenhelm.dev/mcp/tools/call \
-H "Content-Type: application/json" \
-H "X-API-Key: $BIFROST_API_KEY" \
-d '{
"organization_id": "00000000-0000-0000-0000-000000000001",
"tool_name": "query_tasks",
"arguments": {"status": "open"}
}'
List Available Tools
curl -X POST https://bifrost-api.ravenhelm.dev/mcp/tools/list \
-H "Content-Type: application/json" \
-H "X-API-Key: $BIFROST_API_KEY" \
-d '{"organization_id": "00000000-0000-0000-0000-000000000001"}'
See Also
- [[Bifrost-MCP-Gateway]] - Gateway architecture
- [[../Use-Cases]] - End-to-end usage examples
- [[../DevOps/MCP-Servers]] - MCP server configuration