thinkhard.si prompt tools
Search 300+ expert prompt templates for work, grade a prompt out of 10, and price AI models.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"prompt-tools": {
"url": "https://thinkhard.si/mcp"
}
}
}Puntos de conexión remotos
https://thinkhard.si/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢search_prompts(query, collection, model, limit)
Find ready-made, expert prompt templates for a work task in the thinkhard.si repository (300+ prompts for email, meetings, presentations, job search, marketing, sales, support, HR, finance, legal, spreadsheets, research and more). Use it whenever the user wants to write, plan, summarize, analyze or draft something at work, before writing a prompt from scratch. Then call get_prompt with the slug.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "What the user wants to do, in plain words, for example \"cover letter\" or \"summarize a long contract\"."
},
"collection": {
"type": "string",
"enum": [
"office",
"writing",
"marketing",
"careers",
"sales",
"support",
"management",
"people",
"projects",
"research",
"data",
"finance",
"legal",
"operations",
"smallbiz",
"education",
"product",
"engineering",
"system",
"media"
],
"description": "Optional: limit to one collection (see list_collections)."
},
"model": {
"type": "string",
"enum": [
"claude",
"gpt",
"gemini",
"any",
"agent",
"midjourney",
"image",
"video"
],
"description": "Optional: only prompts laid out for this kind of model."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"default": 8
}
},
"required": [
"query"
]
}Esquema de salida
{
"type": "object",
"properties": {
"prompts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Registry number, such as CAR-002."
},
"slug": {
"type": "string",
"description": "Pass it to get_prompt."
},
"title": {
"type": "string"
},
"use": {
"type": "string",
"description": "When to use it."
},
"collection": {
"type": "string",
"description": "The collection it belongs to."
},
"laid_out_for": {
"type": "string",
"description": "The kind of model it is laid out for."
},
"score": {
"type": "integer",
"description": "Its own grade out of 10."
},
"url": {
"type": "string",
"description": "Its page on thinkhard.si."
}
},
"required": [
"id",
"slug",
"title",
"use",
"collection",
"laid_out_for",
"score",
"url"
]
},
"description": "Best match first. Empty when nothing matches."
}
},
"required": [
"prompts"
]
}🟢get_prompt(prompt, values)
Get the full text of one prompt from the thinkhard.si repository by its slug, registry number (such as CAR-001) or exact title, with its {{blanks}}, what goes in each, and why it works. If the name does not match exactly, it answers with the closest matches instead. Pass values to fill blanks with the user's details. Ask the user for any blank you cannot fill from the conversation instead of inventing it.
Esquema de entrada
{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "The slug, registry number or exact title from search_prompts."
},
"values": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Optional: blank name → the user's text, for example {\"job_posting\": \"...\"}."
}
},
"required": [
"prompt"
]
}Esquema de salida
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Registry number."
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"system": {
"type": "string",
"description": "The system prompt, with the given values filled in. Empty when the template has none."
},
"prompt": {
"type": "string",
"description": "The user message, with the given values filled in."
},
"open_blanks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Blanks still to fill. Ask the user for these."
},
"url": {
"type": "string"
}
},
"required": [
"id",
"slug",
"title",
"system",
"prompt",
"open_blanks",
"url"
]
}🟢list_collections
List the collections in the thinkhard.si prompt repository, with how many prompts each has.
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"properties": {
"collections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Pass it to search_prompts as collection."
},
"code": {
"type": "string",
"description": "Registry prefix, such as CAR."
},
"name": {
"type": "string"
},
"blurb": {
"type": "string"
},
"count": {
"type": "integer",
"description": "Prompts in the collection."
}
},
"required": [
"id",
"code",
"name",
"blurb",
"count"
]
}
}
},
"required": [
"collections"
]
}🟢grade_prompt(prompt, system, target)
Score a prompt out of 10 on the ten checks thinkhard.si uses (what to make, who it is for, background facts, length, format, what to avoid, what good looks like, an example, what to do if unsure, layout for the model). Returns which checks pass and a plain question for each one that fails. Rule-based and instant; use it to see what a prompt is missing before improving it.
Esquema de entrada
{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "The prompt to grade (the user message)."
},
"system": {
"type": "string",
"description": "Optional system prompt, graded together with the prompt."
},
"target": {
"type": "string",
"enum": [
"claude",
"gpt",
"gemini",
"any",
"agent",
"midjourney",
"image",
"video"
],
"default": "any",
"description": "The model it is for. Layout is judged for this model."
}
},
"required": [
"prompt"
]
}Esquema de salida
{
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Out of 10."
},
"band": {
"type": "string",
"description": "The score in a word."
},
"target": {
"type": "string",
"description": "The model it was read for."
},
"checks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"check": {
"type": "string"
},
"pass": {
"type": "boolean"
}
},
"required": [
"check",
"pass"
]
},
"description": "The ten checks, in order."
}
},
"required": [
"score",
"band",
"target",
"checks"
]
}🟢estimate_ai_cost(input_tokens, prompt_text, output_tokens, calls_per_month, models)
Estimate the monthly cost of running a prompt on current AI models (Claude, GPT, Gemini, DeepSeek, Qwen and others), from thinkhard.si's price catalog, which is checked against each provider's pricing page. Give token counts, or paste the prompt text to estimate them.
Esquema de entrada
{
"type": "object",
"properties": {
"input_tokens": {
"type": "integer",
"minimum": 0,
"description": "Input tokens per call. Omit to estimate from prompt_text."
},
"prompt_text": {
"type": "string",
"description": "Optional: the prompt, to estimate input tokens (about 4 characters a token)."
},
"output_tokens": {
"type": "integer",
"minimum": 0,
"default": 500,
"description": "Output tokens per call."
},
"calls_per_month": {
"type": "integer",
"minimum": 1,
"default": 1000
},
"models": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional: model names or ids to include, such as \"Claude Sonnet 5.5\". Default: every current model."
}
}
}Esquema de salida
{
"type": "object",
"properties": {
"checked": {
"type": "string",
"description": "When the prices were last checked against each provider."
},
"calls_per_month": {
"type": "integer"
},
"input_tokens": {
"type": "integer"
},
"output_tokens": {
"type": "integer"
},
"models": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"ref": {
"type": "string",
"description": "Provider and model id."
},
"per_call_usd": {
"type": "number",
"description": "US dollars per call."
},
"monthly_usd": {
"type": "number",
"description": "US dollars a month."
},
"input_per_million": {
"type": "number",
"description": "US dollars per million input tokens."
},
"output_per_million": {
"type": "number",
"description": "US dollars per million output tokens."
},
"note": {
"type": "string",
"description": "Empty unless something about the price needs saying."
}
},
"required": [
"model",
"ref",
"per_call_usd",
"monthly_usd",
"input_per_million",
"output_per_million",
"note"
]
},
"description": "Cheapest first."
}
},
"required": [
"checked",
"calls_per_month",
"input_tokens",
"output_tokens",
"models"
]
}Comunidad
Evidencia