Skip to main content
Glama

Jina AI Search MCP Server

by Meetpatel006
tools.py•2.98 kB
"""MCP Tools implementation for Jina AI Search.""" from typing import Any, Dict, List, Optional from pydantic import BaseModel, Field from .client import JinaClient class ToolParameter(BaseModel): """Parameter definition for MCP tools.""" name: str type: str description: str required: bool = False default: Any = None class ToolDefinition(BaseModel): """MCP tool definition.""" name: str description: str parameters: List[ToolParameter] required: List[str] = [] returns: Dict[str, str] = {"type": "object", "description": "Tool execution result"} class JinaTools: """Jina AI Tools implementation for MCP.""" def __init__(self, client: JinaClient): """Initialize with a JinaClient instance.""" self.client = client self._tools = self._get_tools() def _get_tools(self) -> Dict[str, ToolDefinition]: """Get all available tools.""" return { "jina_reader": self._get_reader_tool(), "jina_search": self._get_search_tool(), } def _get_reader_tool(self) -> ToolDefinition: """Get the reader tool definition.""" return ToolDefinition( name="jina_reader", description="Read content from a URL using Jina's Reader API", parameters=[ ToolParameter( name="url", type="string", description="The URL to read content from", required=True, ), ], required=["url"], ) def _get_search_tool(self) -> ToolDefinition: """Get the search tool definition.""" return ToolDefinition( name="jina_search", description="Search using Jina's Search API", parameters=[ ToolParameter( name="q", type="string", description="The search query", required=True, ), ], required=["q"], ) def list_tools(self) -> List[Dict[str, Any]]: """List all available tools.""" return [tool.dict() for tool in self._tools.values()] def get_tool(self, name: str) -> Optional[ToolDefinition]: """Get a specific tool by name.""" return self._tools.get(name) async def execute_tool( self, name: str, parameters: Dict[str, Any] ) -> Dict[str, Any]: """ Execute a tool with the given parameters. Args: name: Name of the tool to execute parameters: Parameters for the tool Returns: Tool execution result """ if name == "jina_reader": return await self.client.read_url(**parameters) elif name == "jina_search": return await self.client.search(**parameters) else: raise ValueError(f"Unknown tool: {name}")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Meetpatel006/jina-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server