Skip to main content
Glama
jina-ai

Jina AI Remote MCP Server

Official
by jina-ai

primer

Extract contextual data like time, location, and network environment to deliver personalized, localized responses for relevant user interactions.

Instructions

Get up-to-date contextual information of the current session to provide localized, time-aware responses. Use this when you need to know the current time, user's location, or network environment to give more relevant and personalized information.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The core handler implementation for the 'primer' tool. Registers the tool with an empty input schema and provides the async handler function that retrieves the session context from props and returns it as YAML-formatted text content.
    server.tool( "primer", "Get up-to-date contextual information of the current session to provide localized, time-aware responses. Use this when you need to know the current time, user's location, or network environment to give more relevant and personalized information.", {}, async () => { try { const props = getProps(); const context = props.context; if (!context) { throw new Error("No context information available"); } return { content: [{ type: "text" as const, text: yamlStringify(context) }], }; } catch (error) { return createErrorResponse(`Error: ${error instanceof Error ? error.message : String(error)}`); } }, );
  • Helper code that constructs the context object (including timezone-aware timestamps, client details, geolocation, and network information from Cloudflare headers) specifically for use by the 'primer' tool, storing it in ctx.props.context.
    // Extract context information for the primer tool const context: any = {}; // Add timestamp info context.timestamp = { utc: new Date().toISOString(), }; if (cf?.timezone) { context.timestamp.userTimezone = cf.timezone; context.timestamp.userLocalTime = new Date().toLocaleString('en-US', { timeZone: cf.timezone as string }); } // Add client info (only if values exist) const client: any = {}; const clientIp = request.headers.get('CF-Connecting-IP'); const userAgent = request.headers.get('User-Agent'); const acceptLanguage = request.headers.get('Accept-Language'); if (clientIp) client.ip = clientIp; if (userAgent) client.userAgent = userAgent; if (acceptLanguage) client.acceptLanguage = acceptLanguage; if (Object.keys(client).length > 0) context.client = client; // Add location info (only if values exist) const location: any = {}; if (cf?.country) location.country = cf.country; if (cf?.city) location.city = cf.city; if (cf?.region) location.region = cf.region; if (cf?.regionCode) location.regionCode = cf.regionCode; if (cf?.continent) location.continent = cf.continent; if (cf?.postalCode) location.postalCode = cf.postalCode; if (cf?.metroCode) location.metroCode = cf.metroCode; if (cf?.timezone) location.timezone = cf.timezone; if (cf?.latitude && cf?.longitude) { location.coordinates = { lat: cf.latitude, lon: cf.longitude }; } if (cf?.isEUCountry === "1") location.isEU = true; if (Object.keys(location).length > 0) context.location = location; // Add network info (only if values exist) const network: any = {}; if (cf?.asn) network.asn = cf.asn; if (cf?.asOrganization) network.organization = cf.asOrganization; if (cf?.colo) network.datacenter = cf.colo; if (cf?.httpProtocol) network.protocol = cf.httpProtocol; if (cf?.tlsVersion) network.tlsVersion = cf.tlsVersion; if (Object.keys(network).length > 0) context.network = network; // Add context to props ctx.props = { ...ctx.props, context };
  • src/index.ts:21-21 (registration)
    Calls registerJinaTools which includes the registration of the 'primer' tool among others on the MCP server.
    registerJinaTools(this.server, () => this.props);

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/jina-ai/MCP'

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