This page describes some of the ways that you can get help from large language models (LLMs) when developing a Vespa application.
From our experience, providing the right context to the LLM is essential to get good results when asking questions about Vespa.
We provide a set of agent skills that teach AI coding assistants how to work with Vespa. An installed skill is loaded by the assistant when relevant to the task, giving it Vespa-specific instructions and reference material.
| Skill | Description |
|---|---|
app-package |
Scaffold and configure application packages: services.xml, schemas, deployment.xml, query profiles and embedders |
schema-authoring |
Write, validate and evolve schema files: field types, indexing, match modes, tensors, rank profiles, structs and fieldsets |
query-builder |
Build YQL queries and design rank profiles: operators, grouping, rank phases, ML models and query tensors |
feed-operations |
Document put/update/remove, document ID format, partial and conditional updates, bulk feeding and visiting |
vespa-cli |
Use the Vespa CLI to deploy, manage and debug applications, including production pipelines, testing and CI/CD |
pyvespa |
Define, deploy, feed and query Vespa applications from Python using pyvespa |
elasticsearch-migration |
Migrate from Elasticsearch: map indices and mappings to schemas, translate Query DSL to YQL, and plan reindexing |
Agent skills for your harness can be installed with either npx or vespa cli
The Vespa CLI can install the skills
for Claude Code, Codex, Cursor and Antigravity CLI.
The first time you run a vespa command in an interactive terminal, you are asked whether to install them.
You can also manage skills explicitly:
# List available skills
vespa skills list
# Install all skills - prompts for harness(es) and scope
vespa skills install
# Install selected skills for Claude Code and Codex, in the current project only
vespa skills install schema-authoring app-package --harness claude,codex --local
# Update installed skills to the latest version
vespa skills update
The skills can alternatively be installed by using the command: npx skills add vespa-engine/skills.
Every page of the documentation is available in Markdown format, by changing the URL from .html to .html.md.
There is also a link to the markdown version in the top right corner of each page.
This can for example be used to copy/paste relevant markdown documentation page(s) into your AI tool of choice when working with LLMs on particular topics.
We provide an llms.txt file, that can serve as a top level entrypoint for an LLM, which includes both top-level overview, architecture, as well as title of and link to markdown-version of all documentation pages.
See llmstxt.org for more information about the format.
The llms.txt file can be downloaded with:
curl -O https://docs.vespa.ai/llms.txt
This file can then be used as an entrypoint when working with LLMs, either through an IDE, CLI or a chat interface. If the LLM has a tool available that allows it to fetch the referenced URLs, it can fetch the content of the desired pages as needed.
We also provide llms-full.txt which contains the full content of all documentation pages in markdown format. This file is relatively large (almost 0.5M words as of Oct 2025), so use accordingly.
We don't provide any official MCP server at this time, but will update this page as soon as we do.
Users can enable MCP server capablities in their own Vespa apps.
This can be done by adding McpRequestHandler to services.xml with one or more McpSpecProvider components.
A pre-built McpSearchSpecProvider already exists, and a usage example can be found in this sample app.
This exposes Vespa search to LLMs via the /mcp/ endpoint.
Users can add more tools by implementing McpSpecProvider and adding the components in services.xml.
Add this to services.xml
<component id="com.yahoo.search.mcp.McpSearchSpecProvider" bundle="container-search-and-docproc"/>
<handler id="ai.vespa.mcp.McpRequestHandler" bundle="container-disc">
<binding>http://*/mcp/*</binding>
</handler>