query_ustensils
Search and retrieve cooking utensils from a recipe database to identify required kitchen tools for meal preparation.
Instructions
Queries the 'ustensils' collection of the 'recipies' MongoDB database.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "query_ustensils"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- main.py:418-427 (handler)The asynchronous handler function for the 'query_ustensils' tool. It connects to a local MongoDB instance, queries the 'ustensils' collection in the 'recipies' database with an optional query dict, converts results to JSON-serializable format using _to_jsonable, and returns the list of documents.
async def query_ustensils(query: Optional[Dict] = None) -> List[Dict]: """Interroge la collection 'ustensils' de la base de données MongoDB 'recipies'.""" client = MongoClient('mongodb://localhost:27017/') db = client['recipies'] collection = db['ustensils'] query = query or {} results = list(collection.find(query)) client.close() return [_to_jsonable(doc) for doc in results] - main.py:414-417 (registration)The @mcp.tool decorator that registers the 'query_ustensils' tool, specifying its name and description.
@mcp.tool( name="query_ustensils", description="Queries the 'ustensils' collection of the 'recipies' MongoDB database.", ) - main.py:25-38 (helper)Helper utility function used by the 'query_ustensils' handler (and others) to recursively convert MongoDB documents containing ObjectId and datetime objects into JSON-serializable dictionaries.
def _to_jsonable(doc: Dict[str, any]) -> Dict[str, any]: out = {} for k, v in doc.items(): if isinstance(v, ObjectId): out[k] = str(v) elif isinstance(v, datetime): out[k] = v.isoformat() elif isinstance(v, dict): out[k] = _to_jsonable(v) elif isinstance(v, list): out[k] = [_to_jsonable(x) if isinstance(x, dict) else x for x in v] else: out[k] = v return out