airbyte.mcp.prompts

MCP prompt definitions for the Airbyte Replication MCP server.

This module defines prompts that can be invoked by MCP clients to perform common workflows.

prompts module

MCP primitives registered by the prompts module of the airbyte-mcp server: 0 tool(s), 1 prompt(s), 0 resource(s).

Prompts (1)

test-my-tools

Test all available MCP tools to confirm they are working properly

Arguments

Name Required Description
scope no Provide as a JSON string matching the following schema: {"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional free-form text to focus or constrain testing. This can be a single word, a sentence, or a paragraph describing the desired scope or constraints."}
 1# Copyright (c) 2024 Airbyte, Inc., all rights reserved.
 2"""MCP prompt definitions for the Airbyte Replication MCP server.
 3
 4This module defines prompts that can be invoked by MCP clients to perform
 5common workflows.
 6
 7.. include:: ../../docs/mcp-generated/prompts.md
 8"""
 9
10from __future__ import annotations
11
12from typing import TYPE_CHECKING, Annotated
13
14from fastmcp_extensions import mcp_prompt, register_mcp_prompts
15from pydantic import Field
16
17
18# No public Python API — MCP primitives are registered via decorators and
19# documented via the generated Markdown include above. Setting `__all__` to an
20# empty list tells pdoc (and other doc tools) not to surface the individual
21# tool / helper definitions as a redundant "API Documentation" list.
22__all__: list[str] = []
23
24
25if TYPE_CHECKING:
26    from fastmcp import FastMCP
27
28
29TEST_MY_TOOLS_GUIDANCE = """
30Test all available tools in this MCP server to confirm they are working properly.
31
32Guidelines:
33- Iterate through each tool systematically
34- Use read-only operations whenever possible
35- For tools that modify data, use test/safe modes or skip if no safe testing method exists
36- Avoid creating persistent side effects (e.g., don't create real resources, connections, or data)
37- Document which tools were tested and their status
38- Report any errors or issues encountered
39- Provide a summary of the test results at the end
40
41Focus on validating that tools:
421. Accept their required parameters correctly
432. Return expected output formats
443. Handle errors gracefully
454. Connect to required services (if applicable)
46
47Be efficient and practical in your testing approach.
48""".strip()
49
50
51@mcp_prompt(
52    name="test-my-tools",
53    description="Test all available MCP tools to confirm they are working properly",
54)
55def test_my_tools_prompt(
56    scope: Annotated[
57        str | None,
58        Field(
59            description=(
60                "Optional free-form text to focus or constrain testing. "
61                "This can be a single word, a sentence, or a paragraph "
62                "describing the desired scope or constraints."
63            ),
64        ),
65    ] = None,
66) -> list[dict[str, str]]:
67    """Generate a prompt that instructs the agent to test available tools."""
68    content = TEST_MY_TOOLS_GUIDANCE
69
70    if scope:
71        content = f"{content}\n\n---\n\nAdditional scope or constraints:\n{scope}"
72
73    return [
74        {
75            "role": "user",
76            "content": content,
77        }
78    ]
79
80
81def register_prompts(app: FastMCP) -> None:
82    """Register prompts with the FastMCP app.
83
84    Args:
85        app: FastMCP application instance
86    """
87    register_mcp_prompts(app, mcp_module=__name__)