Hi everyone,
I wanted a small and inspectable dataset for testing Gemini’s built-in MCP support without giving the model access to tools that modify external systems.
Most function calling examples use weather services, calendars, or databases. Those are useful, but their changing state can make evaluation harder. For this test, I used a fixed dataset containing all 78 tarot cards.
Tarot is only the test domain here. The same pattern could be applied to a product catalog, glossary, ruleset, reference collection, or another bounded knowledge source.
The MCP server is open source:
The underlying dataset, archived versions, packages, and citation information are available through [Deckaura’s open 78-card tarot dataset and developer resources]( deckaura. com/pages/ai-data-sources).
Tool surface
The server exposes five tools:
get_card_meaninglist_all_cardsdraw_random_cardthree_card_spreadyes_no_reading
It runs locally over stdio, reads a local dataset, and does not require a database or external API key.
For the first test, I focused on get_card_meaning because it produces deterministic results.
Minimal JavaScript example
Install the Google Gen AI and MCP SDKs:
npm install @google/genai @modelcontextprotocol/sdk
Then connect Gemini to the MCP server:
import { GoogleGenAI, mcpToTool } from "@google/genai";
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const ai = new GoogleGenAI({
apiKey: process.env.GEMINI_API_KEY,
});
const transport = new StdioClientTransport({
command: "npx",
args: ["-y", "@deckaura/tarot-mcp-server"],
});
const mcpClient = new Client({
name: "gemini-tarot-test",
version: "1.0.0",
});