mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 15:19:10 +02:00
34 lines
948 B
Text
34 lines
948 B
Text
---
|
|
title: providers
|
|
sidebarTitle: providers
|
|
---
|
|
|
|
# `fastmcp.server.providers`
|
|
|
|
|
|
Providers for dynamic MCP components.
|
|
|
|
This module provides the `Provider` abstraction for providing tools,
|
|
resources, and prompts dynamically at runtime.
|
|
|
|
Example:
|
|
```python
|
|
from fastmcp import FastMCP
|
|
from fastmcp.server.providers import Provider
|
|
from fastmcp.tools import Tool
|
|
|
|
class DatabaseProvider(Provider):
|
|
def __init__(self, db_url: str):
|
|
self.db = Database(db_url)
|
|
|
|
async def _list_tools(self) -> list[Tool]:
|
|
rows = await self.db.fetch("SELECT * FROM tools")
|
|
return [self._make_tool(row) for row in rows]
|
|
|
|
async def _get_tool(self, name: str) -> Tool | None:
|
|
row = await self.db.fetchone("SELECT * FROM tools WHERE name = ?", name)
|
|
return self._make_tool(row) if row else None
|
|
|
|
mcp = FastMCP("Server", providers=[DatabaseProvider(db_url)])
|
|
```
|
|
|