From 2a09771b4318dd01b06376dbbf17f15f849d5c78 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Mon, 3 Aug 2026 22:46:03 +0530 Subject: [PATCH] (feat): adopt console Python SDK --- AGENTS.md | 5 +- docs/appwrite-mcp-flow.png | Bin 339987 -> 340074 bytes docs/appwrite-mcp-flow.svg | 2 +- docs/self-hosted.md | 7 + docs/tool-surface.md | 21 ++- pyproject.toml | 2 +- src/mcp_server_appwrite/catalog_policy.py | 169 ++++++++++++++++++++ src/mcp_server_appwrite/constants.py | 14 +- src/mcp_server_appwrite/context.py | 12 +- src/mcp_server_appwrite/error_monitoring.py | 2 +- src/mcp_server_appwrite/operator.py | 25 ++- src/mcp_server_appwrite/server.py | 57 +++++-- src/mcp_server_appwrite/service.py | 18 ++- tests/integration/support.py | 3 +- tests/integration/test_console_sdk_oauth.py | 114 +++++++++++++ tests/integration/test_functions.py | 2 +- tests/integration/test_sites.py | 4 +- tests/integration/test_storage.py | 2 +- tests/unit/test_context.py | 4 +- tests/unit/test_error_monitoring.py | 2 +- tests/unit/test_operator.py | 59 +++++++ tests/unit/test_server.py | 35 +++- tests/unit/test_service.py | 23 ++- uv.lock | 12 +- 24 files changed, 528 insertions(+), 66 deletions(-) create mode 100644 src/mcp_server_appwrite/catalog_policy.py create mode 100644 tests/integration/test_console_sdk_oauth.py diff --git a/AGENTS.md b/AGENTS.md index 9b48f63..9425162 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -49,8 +49,9 @@ needs no credentials. Dashboards live in the `dashboards` repo under `MCP/`. The server boots in a compact workflow: the client sees up to 4 tools (`appwrite_get_context`, `appwrite_search_tools`, `appwrite_call_tool`, and -optionally `appwrite_search_docs`), while the full Appwrite catalog (25 services) -stays internal and is searched at runtime. Mutating hidden tools require +optionally `appwrite_search_docs`), while the full OAuth Appwrite catalog (38 +services) stays internal and is searched at runtime. API-key stdio uses a filtered +26-service catalog. Mutating hidden tools require `confirm_write=true`. Large outputs are stored as MCP resources and returned as a preview + resource URI. diff --git a/docs/appwrite-mcp-flow.png b/docs/appwrite-mcp-flow.png index 465e4442f808b628d03f9298e57de0f99857c208..b3e6fd7d25da0f9115a7886a74393a6e511d52a6 100644 GIT binary patch delta 90859 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%0D4TK4#e1SxW(M}HXTlvq#ehx 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 delta 90581 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 - hidden catalog · 25 services · 100s of tools + hosted catalog · 38 services · 981 tools writes need confirm_write: true diff --git a/docs/self-hosted.md b/docs/self-hosted.md index 6fe4cd3..d28ae67 100644 --- a/docs/self-hosted.md +++ b/docs/self-hosted.md @@ -3,6 +3,13 @@ Running your own Appwrite instance? Run the MCP server locally over `stdio` and authenticate with a project API key instead of OAuth. +The local API-key catalog is intentionally smaller than the hosted OAuth catalog: +it exposes 647 project-key-compatible methods across 26 services. DocumentsDB, +VectorsDB, and text embeddings are available, but console control-plane services +such as organizations, domains, projects, billing, migrations, dedicated +databases, usage administration, VCS administration, and WAF administration are +hidden because project API keys cannot authenticate those routes. + ## Setup 1. In your Appwrite Console, create a project API key with the scopes you want the diff --git a/docs/tool-surface.md b/docs/tool-surface.md index 517c5f7..824d586 100644 --- a/docs/tool-surface.md +++ b/docs/tool-surface.md @@ -18,9 +18,9 @@ flowchart LR ST -.searches.-> CAT CT -.invokes.-> CAT - subgraph CAT[Internal catalog — 25 services] + subgraph CAT[Internal catalog — authentication-aware] direction LR - K[account · databases · functions
storage · teams · users · …] + K[OAuth: 38 services / 981 tools
API key: 26 services / 647 tools] end CT -->|large output| R[(MCP resource
preview + URI)] @@ -43,7 +43,16 @@ flowchart LR - **Large outputs** are stored as an MCP resource and returned as preview text plus a resource URI. - **Writes** through hidden mutating tools require `confirm_write=true`. -- **Access** is gated per-route by the scopes the OAuth token was granted, not by - the catalog. -- **Registration** is automatic — every service the installed SDK ships becomes a - catalog entry. +- **Target context** is included in search results as `context=console`, + `context=organization`, or `context=project`. Hosted calls enforce the required + top-level `organization_id` or `project_id` before making a request. +- **Access** is still gated per-route by the scopes granted to the OAuth token. +- **Hosted OAuth** registers all 38 services and 981 methods shipped by + `appwrite-console` 0.2.1. This adds console control-plane services including + projects, organizations, domains, migrations, dedicated databases, usage, VCS, + vectors, WAF, notifications, and regions. +- **API-key stdio** deliberately registers only the 647 project-key-compatible + methods across 26 services. It includes the new DocumentsDB, VectorsDB, and + text-embeddings APIs, while console administration methods remain hidden. +- **Registration** remains SDK-driven, with the authentication profile policy + applied while the internal catalog is built. diff --git a/pyproject.toml b/pyproject.toml index daac318..5fe4b93 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ readme = "README.md" requires-python = ">=3.12" dependencies = [ "anyio>=4.0.0", - "appwrite>=22.2.0,<23", + "appwrite-console>=0.2.1,<0.3", "docstring-parser>=0.16", "mcp[cli]>=2,<3", "python-dotenv>=1.0.1", diff --git a/src/mcp_server_appwrite/catalog_policy.py b/src/mcp_server_appwrite/catalog_policy.py new file mode 100644 index 0000000..fcb68c9 --- /dev/null +++ b/src/mcp_server_appwrite/catalog_policy.py @@ -0,0 +1,169 @@ +"""Catalog profiles and target-context metadata for Appwrite SDK services. + +The console SDK contains both project APIs and console control-plane APIs. Hosted +OAuth sessions may use the complete catalog, while local API-key sessions must +only advertise endpoints that accept project API keys. Keeping this policy in one +module makes that trust boundary explicit and independently testable. +""" + +from __future__ import annotations + +from typing import Literal + +CatalogProfile = Literal["oauth", "api_key"] +ContextScope = Literal["console", "organization", "project"] + +OAUTH_PROFILE: CatalogProfile = "oauth" +API_KEY_PROFILE: CatalogProfile = "api_key" + +# Services present in the former server SDK, plus the server-capable document and +# vector APIs introduced by appwrite-console. Any future console SDK service stays +# hidden from API-key mode until it is deliberately reviewed and added here. +API_KEY_SERVICES: frozenset[str] = frozenset( + { + "account", + "activities", + "advisor", + "apps", + "avatars", + "backups", + "databases", + "documents_db", + "embeddings", + "functions", + "graphql", + "locale", + "messaging", + "oauth2", + "organization", + "presences", + "project", + "proxy", + "sites", + "storage", + "tables_db", + "teams", + "tokens", + "users", + "vectors_db", + "webhooks", + } +) + +# Methods added to existing service modules by the console SDK that are not +# available to project API keys. The documents/vectors exclusions are console +# administration operations; their remaining methods are server endpoints. +API_KEY_EXCLUDED_METHODS: dict[str, frozenset[str]] = { + "account": frozenset( + { + "create_billing_address", + "create_key", + "create_o_auth2_session", + "create_payment_method", + "create_push_target", + "delete", + "delete_billing_address", + "delete_key", + "delete_payment_method", + "delete_push_target", + "get_billing_address", + "get_coupon", + "get_key", + "get_payment_method", + "list_billing_addresses", + "list_invoices", + "list_keys", + "list_payment_methods", + "update_billing_address", + "update_key", + "update_payment_method", + "update_payment_method_mandate_options", + "update_payment_method_provider", + "update_push_target", + } + ), + "apps": frozenset({"delete_installation"}), + "documents_db": frozenset( + { + "create_documents", + "create_failover", + "get_replicas", + "get_status", + "list_operations", + "list_specifications", + } + ), + "functions": frozenset({"get_template", "list_templates"}), + "oauth2": frozenset({"logout", "logout_post"}), + "presences": frozenset({"get_usage"}), + "project": frozenset({"get_usage"}), + "sites": frozenset({"get_template", "list_templates"}), + "tables_db": frozenset( + { + "create_migration", + "delete_migration", + "get_migration", + "list_migrations", + "list_operations", + } + ), + "teams": frozenset({"list_logs"}), + "users": frozenset({"get_usage"}), + "vectors_db": frozenset( + { + "create_documents", + "create_failover", + "create_query", + "get_replicas", + "get_status", + "list_operations", + "list_specifications", + } + ), +} + +# Target metadata is surfaced in search results and enforced by hosted OAuth +# calls. API-key mode already has a fixed project on its configured client. +PROJECT_CONTEXT_SERVICES: frozenset[str] = frozenset( + { + "databases", + "documents_db", + "embeddings", + "functions", + "messaging", + "migrations", + "mongo", + "mysql", + "postgresql", + "sites", + "storage", + "tables_db", + "teams", + "usage", + "users", + "vcs", + "vectors_db", + "waf", + } +) +ORGANIZATION_CONTEXT_SERVICES: frozenset[str] = frozenset({"domains"}) + + +def method_allowed( + profile: CatalogProfile, service_name: str, method_name: str +) -> bool: + """Return whether a method belongs in the selected authentication profile.""" + if profile == OAUTH_PROFILE: + return True + if service_name not in API_KEY_SERVICES: + return False + return method_name not in API_KEY_EXCLUDED_METHODS.get(service_name, ()) + + +def context_scope(service_name: str) -> ContextScope: + """Return the target context a hosted OAuth call must provide.""" + if service_name in PROJECT_CONTEXT_SERVICES: + return "project" + if service_name in ORGANIZATION_CONTEXT_SERVICES: + return "organization" + return "console" diff --git a/src/mcp_server_appwrite/constants.py b/src/mcp_server_appwrite/constants.py index 7138ac3..700f633 100644 --- a/src/mcp_server_appwrite/constants.py +++ b/src/mcp_server_appwrite/constants.py @@ -5,13 +5,13 @@ from importlib import metadata as importlib_metadata from pathlib import Path -from appwrite.models.bucket import Bucket -from appwrite.models.database import Database -from appwrite.models.function import Function -from appwrite.models.message import Message -from appwrite.models.site import Site -from appwrite.models.team import Team -from appwrite.models.user import User +from appwrite_console.models.bucket import Bucket +from appwrite_console.models.database import Database +from appwrite_console.models.function import Function +from appwrite_console.models.message import Message +from appwrite_console.models.site import Site +from appwrite_console.models.team import Team +from appwrite_console.models.user import User # --- server --------------------------------------------------------------- diff --git a/src/mcp_server_appwrite/context.py b/src/mcp_server_appwrite/context.py index dc2637d..d3b58fd 100644 --- a/src/mcp_server_appwrite/context.py +++ b/src/mcp_server_appwrite/context.py @@ -3,12 +3,12 @@ from collections.abc import Callable from typing import Any -from appwrite.client import Client -from appwrite.exception import AppwriteException -from appwrite.models.project import Project -from appwrite.models.team import Team -from appwrite.models.user import User -from appwrite.query import Query +from appwrite_console.client import Client +from appwrite_console.exception import AppwriteException +from appwrite_console.models.project import Project +from appwrite_console.models.team import Team +from appwrite_console.models.user import User +from appwrite_console.query import Query from .constants import REDACTED_KEYS, SERVICE_PROBES diff --git a/src/mcp_server_appwrite/error_monitoring.py b/src/mcp_server_appwrite/error_monitoring.py index d9c78f9..4ce6476 100644 --- a/src/mcp_server_appwrite/error_monitoring.py +++ b/src/mcp_server_appwrite/error_monitoring.py @@ -13,7 +13,7 @@ from collections.abc import Mapping from typing import Any -from appwrite.exception import AppwriteException +from appwrite_console.exception import AppwriteException _enabled = False diff --git a/src/mcp_server_appwrite/operator.py b/src/mcp_server_appwrite/operator.py index f69ba95..8367b08 100644 --- a/src/mcp_server_appwrite/operator.py +++ b/src/mcp_server_appwrite/operator.py @@ -42,6 +42,7 @@ class CatalogEntry: action_verb: str classification: str + context_scope: str description: str input_schema: dict[str, Any] required: list[str] @@ -110,6 +111,7 @@ def __init__( docs_search: DocsSearch | None = None, context_provider: ContextProvider | None = None, preview_threshold: int = PREVIEW_THRESHOLD, + require_target_context: bool = False, store_results: bool = True, search_limit: int = SEARCH_LIMIT, ): @@ -118,6 +120,7 @@ def __init__( self._docs_search = docs_search self._context_provider = context_provider self._preview_threshold = preview_threshold + self._require_target_context = require_target_context self._store_results = store_results self._search_limit = search_limit self._result_store = ResultStore() @@ -240,8 +243,9 @@ def get_public_tools(self) -> list[types.Tool]: "Appwrite project ID to act on (sent as X-Appwrite-Project). " "The connection authenticates against the Appwrite console, which " "can list your projects/organizations but holds no data — so " - "project-scoped tools (TablesDB, tables, users, storage, " - "functions, messaging, sites) require this. Discover a project " + "project-scoped tools (databases, documents, vectors, users, " + "storage, functions, messaging, sites, usage, VCS, and WAF) " + "require this. Search results identify each tool's context. Discover a project " "first, then pass its id. Omit for console/account-level tools." ), }, @@ -375,10 +379,12 @@ def _build_catalog(self) -> list[CatalogEntry]: for tool in self._tools_manager.get_all_tools(): parsed = _parse_tool_name(tool.name) input_schema = tool.input_schema or {} + tool_info = self._tools_manager.get_tool(tool.name) or {} entries.append( CatalogEntry( action_verb=parsed["action_verb"], classification=parsed["classification"], + context_scope=str(tool_info.get("context_scope", "console")), description=tool.description or "", input_schema=input_schema, required=list(input_schema.get("required", [])), @@ -395,6 +401,7 @@ def _catalog_json(self) -> str: { "action_verb": entry.action_verb, "classification": entry.classification, + "context_scope": entry.context_scope, "description": entry.description, "required": entry.required, "resource_name": entry.resource_name, @@ -449,7 +456,8 @@ def _search_tools(self, arguments: dict[str, Any]) -> list[ToolContent]: params = _format_params_block(match.entry) lines.append( f"{index}. tool={match.entry.tool_name} service={match.entry.service_name} " - f"class={match.entry.classification} required={required}{missing} " + f"class={match.entry.classification} context={match.entry.context_scope} " + f"required={required}{missing} " f"score={match.score}{description}{params}" ) lines.append("") @@ -484,6 +492,17 @@ def _call_hidden_tool(self, raw_arguments: dict[str, Any]) -> list[ToolContent]: organization_id = raw_arguments.get( "organization_id", raw_arguments.get("organizationId") ) + if self._require_target_context: + if entry.context_scope == "project" and not project_id: + raise ValueError( + f"Tool {tool_name} requires project_id. Use appwrite_get_context " + "to select a project, then retry with that project ID." + ) + if entry.context_scope == "organization" and not organization_id: + raise ValueError( + f"Tool {tool_name} requires organization_id. Use appwrite_get_context " + "to select an organization, then retry with that organization ID." + ) arguments_object = _normalize_arguments(raw_arguments) result_content = self._execute_tool( tool_name, arguments_object, project_id, organization_id diff --git a/src/mcp_server_appwrite/server.py b/src/mcp_server_appwrite/server.py index acaf05a..5eccc4b 100644 --- a/src/mcp_server_appwrite/server.py +++ b/src/mcp_server_appwrite/server.py @@ -28,11 +28,11 @@ import mcp.server.stdio import mcp.types as types from anyio import to_thread -from appwrite.client import Client -from appwrite.enums.browser import Browser -from appwrite.exception import AppwriteException -from appwrite.input_file import InputFile -from appwrite.service import Service as _SdkService +from appwrite_console.client import Client +from appwrite_console.enums.browser import Browser +from appwrite_console.exception import AppwriteException +from appwrite_console.input_file import InputFile +from appwrite_console.service import Service as _SdkService from dotenv import find_dotenv, load_dotenv from mcp import MCPError from mcp.server import NotificationOptions, Server, ServerRequestContext @@ -41,6 +41,13 @@ from mcp.types import CLIENT_INFO_META_KEY, INVALID_PARAMS from . import error_monitoring, flags, telemetry +from .catalog_policy import ( + API_KEY_PROFILE, + OAUTH_PROFILE, + CatalogProfile, + context_scope, + method_allowed, +) from .constants import ( CACHE_TTL_SECONDS, CATALOG_URI, @@ -76,14 +83,14 @@ def _discover_service_classes() -> dict[str, type]: prefix. The catalog/schema is built once from these classes; at execution time the matching class is re-instantiated on a per-request client (see ``resolve_client``).""" - import appwrite.services as services_pkg + import appwrite_console.services as services_pkg discovered: dict[str, type] = {} for module_info in pkgutil.iter_modules(services_pkg.__path__): name = module_info.name if name in EXCLUDED_SERVICES: continue - module = importlib.import_module(f"appwrite.services.{name}") + module = importlib.import_module(f"appwrite_console.services.{name}") for _, cls in inspect.getmembers(module, inspect.isclass): if ( issubclass(cls, _SdkService) @@ -239,17 +246,19 @@ def build_client_for_request( client = Client() client.set_endpoint(endpoint or os.getenv("APPWRITE_ENDPOINT", DEFAULT_ENDPOINT)) client.set_project(target_project or project_id) - client.add_header("Authorization", f"Bearer {bearer_token}") + client.set_bearer(bearer_token) client = _configure_mcp_client_headers(client) if target_project: + # Generated service methods read the project from client config. Keep the + # global header too for raw client.call() paths used by this server. client.add_header("x-appwrite-project", target_project) # Admin mode lets the console-issued token be recognized on another project # (as the owner) instead of falling back to guest. It is only valid when # targeting a real project — the API rejects admin mode on the console # project itself — so it is gated on target_project, not organization_id. - client.add_header("x-appwrite-mode", "admin") + client.set_mode("admin") if organization_id: - client.add_header("x-appwrite-organization", organization_id) + client.set_organization(organization_id) return client @@ -349,10 +358,29 @@ def resolve_client( ) -def register_services(client: Client) -> ToolManager: +def register_services( + client: Client, *, profile: CatalogProfile = OAUTH_PROFILE +) -> ToolManager: tools_manager = ToolManager() for name, service_cls in SERVICE_CLASSES.items(): - tools_manager.register_service(Service(service_cls(client), name)) + service_instance = service_cls(client) + allowed_methods = frozenset( + method_name + for method_name, method in inspect.getmembers( + service_instance, predicate=inspect.ismethod + ) + if method_allowed(profile, name, method_name) + ) + if not allowed_methods: + continue + tools_manager.register_service( + Service( + service_instance, + name, + allowed_methods=allowed_methods, + context_scope=context_scope(name), + ) + ) return tools_manager @@ -1421,6 +1449,7 @@ def build_operator( ), context_provider=lambda arguments: _get_context_for_request(arguments, client), docs_search=docs_search, + require_target_context=client is None, store_results=store_results, ) @@ -1472,7 +1501,7 @@ def client_factory( def build_catalog_tools_manager() -> ToolManager: """Build the tool catalog/schema once from SDK introspection. Credentials arrive per request (OAuth) rather than at startup, so a credential-less client suffices.""" - return register_services(build_introspection_client()) + return register_services(build_introspection_client(), profile=OAUTH_PROFILE) async def run_stdio() -> None: @@ -1482,7 +1511,7 @@ async def run_stdio() -> None: client = build_client(config) _log_startup(f"Using Appwrite endpoint: {config.endpoint}") _log_startup("Registering Appwrite services") - tools_manager = register_services(client) + tools_manager = register_services(client, profile=API_KEY_PROFILE) _log_startup("Starting Appwrite service validation") validate_services(tools_manager) _log_startup("Building Appwrite operator surface") diff --git a/src/mcp_server_appwrite/service.py b/src/mcp_server_appwrite/service.py index 478bfad..a1bc285 100644 --- a/src/mcp_server_appwrite/service.py +++ b/src/mcp_server_appwrite/service.py @@ -4,7 +4,7 @@ from types import UnionType from typing import Any, Dict, List, Union, get_args, get_origin, get_type_hints -from appwrite.input_file import InputFile +from appwrite_console.input_file import InputFile from docstring_parser import parse from mcp.types import Tool @@ -12,11 +12,20 @@ class Service: """Base class for all Appwrite services""" - _IGNORED_PARAMETERS = {"on_progress"} + _IGNORED_PARAMETERS = {"model_type", "on_progress"} - def __init__(self, service_instance, service_name: str): + def __init__( + self, + service_instance, + service_name: str, + *, + allowed_methods: frozenset[str] | None = None, + context_scope: str = "console", + ): self.service = service_instance self.service_name = service_name + self.allowed_methods = allowed_methods + self.context_scope = context_scope self._method_name_overrides = self.get_method_name_overrides() def get_method_name_overrides(self) -> Dict[str, str]: @@ -151,6 +160,8 @@ def list_tools(self) -> Dict[str, Dict]: for name, func in inspect.getmembers(self.service, predicate=inspect.ismethod): if name.startswith("_"): # Skip private methods continue + if self.allowed_methods is not None and name not in self.allowed_methods: + continue original_func = func.__func__ @@ -205,6 +216,7 @@ def list_tools(self) -> Dict[str, Dict]: # mode) instead of the credential-less client used for introspection. "service_name": self.service_name, "method_name": name, + "context_scope": self.context_scope, "parameter_types": { param_name: type_hints[param_name] for param_name in signature.parameters diff --git a/tests/integration/support.py b/tests/integration/support.py index 9c5e20f..9b53f79 100644 --- a/tests/integration/support.py +++ b/tests/integration/support.py @@ -11,6 +11,7 @@ from typing import Any from uuid import uuid4 +from mcp_server_appwrite.catalog_policy import API_KEY_PROFILE from mcp_server_appwrite.docs_search import DocsSearch from mcp_server_appwrite.operator import Operator from mcp_server_appwrite.server import ( @@ -49,7 +50,7 @@ class ToolOutcome: class LiveSurfaceRunner: def __init__(self): self.client = build_client() - self.manager = register_services(self.client) + self.manager = register_services(self.client, profile=API_KEY_PROFILE) docs_search = DocsSearch() self.docs_available = docs_search.available self.runtime = Operator( diff --git a/tests/integration/test_console_sdk_oauth.py b/tests/integration/test_console_sdk_oauth.py new file mode 100644 index 0000000..516e466 --- /dev/null +++ b/tests/integration/test_console_sdk_oauth.py @@ -0,0 +1,114 @@ +"""Read-only live coverage for every service added by appwrite-console. + +These tests use a console OAuth token and are skipped unless the explicit OAuth +environment is present. Embeddings are billable and require a separate opt-in. +""" + +from __future__ import annotations + +import os +import unittest + +from mcp_server_appwrite.catalog_policy import OAUTH_PROFILE +from mcp_server_appwrite.constants import DEFAULT_ENDPOINT +from mcp_server_appwrite.server import ( + _lookup_project_region, + build_client_for_request, + build_introspection_client, + execute_registered_tool, + register_services, + resolve_region_endpoint, +) + +TOKEN = os.getenv("APPWRITE_OAUTH_ACCESS_TOKEN") +ORGANIZATION_ID = os.getenv("APPWRITE_OAUTH_ORGANIZATION_ID") +PROJECT_ID = os.getenv("APPWRITE_OAUTH_PROJECT_ID") + + +@unittest.skipUnless( + TOKEN and ORGANIZATION_ID and PROJECT_ID, + "Console OAuth token, organization ID, and project ID are required.", +) +class ConsoleSdkOAuthIntegrationTests(unittest.TestCase): + @classmethod + def setUpClass(cls) -> None: + assert TOKEN is not None + assert ORGANIZATION_ID is not None + assert PROJECT_ID is not None + + cls.manager = register_services( + build_introspection_client(), profile=OAUTH_PROFILE + ) + base_endpoint = os.getenv("APPWRITE_ENDPOINT", DEFAULT_ENDPOINT) + console_project_id = os.getenv("APPWRITE_CONSOLE_PROJECT_ID", "console") + cls.console_client = build_client_for_request( + console_project_id, TOKEN, endpoint=base_endpoint + ) + cls.organization_client = build_client_for_request( + console_project_id, + TOKEN, + endpoint=base_endpoint, + organization_id=ORGANIZATION_ID, + ) + + project_endpoint = os.getenv("APPWRITE_OAUTH_PROJECT_ENDPOINT") + if not project_endpoint: + region = _lookup_project_region(console_project_id, TOKEN, PROJECT_ID) + project_endpoint = resolve_region_endpoint(base_endpoint, region) + cls.project_client = build_client_for_request( + console_project_id, + TOKEN, + endpoint=project_endpoint, + target_project=PROJECT_ID, + ) + + def _call(self, tool_name: str, arguments: dict | None, client) -> None: + result = execute_registered_tool( + self.manager, tool_name, arguments or {}, client=client + ) + self.assertTrue(result, tool_name) + + def test_new_console_services_are_usable(self): + probes = ( + ("console_list_regions", {}, self.console_client), + ("organizations_list", {}, self.console_client), + ("notifications_list", {}, self.console_client), + ( + "projects_list_stages", + {"project_id": PROJECT_ID}, + self.console_client, + ), + ("domains_list", {}, self.organization_client), + ("documents_db_list", {}, self.project_client), + ("migrations_list", {}, self.project_client), + ("mongo_list", {}, self.project_client), + ("mysql_list", {}, self.project_client), + ("postgresql_list", {}, self.project_client), + ( + "usage_list_events", + {"metrics": ["executions"], "limit": 1}, + self.project_client, + ), + ("vcs_list_installations", {}, self.project_client), + ("vectors_db_list", {}, self.project_client), + ("waf_list_rules", {}, self.project_client), + ) + + for tool_name, arguments, client in probes: + with self.subTest(tool_name=tool_name): + self._call(tool_name, arguments, client) + + @unittest.skipUnless( + os.getenv("APPWRITE_TEST_BILLABLE_EMBEDDINGS") == "1", + "Set APPWRITE_TEST_BILLABLE_EMBEDDINGS=1 to run the billable probe.", + ) + def test_embeddings_are_usable_when_billable_probe_is_enabled(self): + self._call( + "embeddings_create_text_embeddings", + {"texts": ["Appwrite MCP integration probe"]}, + self.project_client, + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/integration/test_functions.py b/tests/integration/test_functions.py index c3c67b2..87c0f17 100644 --- a/tests/integration/test_functions.py +++ b/tests/integration/test_functions.py @@ -1,4 +1,4 @@ -from appwrite.enums.runtime import Runtime +from appwrite_console.enums.runtime import Runtime from support import LiveIntegrationTestCase, requires_live_integration diff --git a/tests/integration/test_sites.py b/tests/integration/test_sites.py index c113700..4e25980 100644 --- a/tests/integration/test_sites.py +++ b/tests/integration/test_sites.py @@ -1,5 +1,5 @@ -from appwrite.enums.build_runtime import BuildRuntime -from appwrite.enums.framework import Framework +from appwrite_console.enums.build_runtime import BuildRuntime +from appwrite_console.enums.framework import Framework from support import LiveIntegrationTestCase, requires_live_integration diff --git a/tests/integration/test_storage.py b/tests/integration/test_storage.py index eae99d6..81921bd 100644 --- a/tests/integration/test_storage.py +++ b/tests/integration/test_storage.py @@ -1,4 +1,4 @@ -from appwrite.enums.compression import Compression +from appwrite_console.enums.compression import Compression from support import LiveIntegrationTestCase, requires_live_integration diff --git a/tests/unit/test_context.py b/tests/unit/test_context.py index 7da3b49..44ae566 100644 --- a/tests/unit/test_context.py +++ b/tests/unit/test_context.py @@ -1,7 +1,7 @@ import unittest -from appwrite.client import Client -from appwrite.exception import AppwriteException +from appwrite_console.client import Client +from appwrite_console.exception import AppwriteException from mcp_server_appwrite.context import get_appwrite_context from mcp_server_appwrite.server import _get_context_for_request diff --git a/tests/unit/test_error_monitoring.py b/tests/unit/test_error_monitoring.py index e76c632..b52dc0f 100644 --- a/tests/unit/test_error_monitoring.py +++ b/tests/unit/test_error_monitoring.py @@ -2,7 +2,7 @@ import unittest from unittest.mock import patch -from appwrite.exception import AppwriteException +from appwrite_console.exception import AppwriteException from mcp_server_appwrite import error_monitoring diff --git a/tests/unit/test_operator.py b/tests/unit/test_operator.py index 9def5b2..d369dfa 100644 --- a/tests/unit/test_operator.py +++ b/tests/unit/test_operator.py @@ -228,8 +228,67 @@ def test_search_tools_returns_ranked_match(self): self.assertEqual(len(result), 1) self.assertIsInstance(result[0], types.TextContent) self.assertIn("tables_db_list", result[0].text) + self.assertIn("context=console", result[0].text) self.assertIn(CATALOG_URI, result[0].text) + def test_catalog_and_search_surface_target_context(self): + manager = ToolManager() + manager.tools_registry = { + "domains_list": { + "definition": make_tool("domains_list", "List domains."), + "context_scope": "organization", + } + } + runtime = Operator(manager, lambda *_: []) + + result = runtime.execute_public_tool( + "appwrite_search_tools", {"query": "list domains"} + ) + self.assertIn("context=organization", result[0].text) + + catalog = runtime.read_resource(CATALOG_URI)[0].content + self.assertIn('"context_scope": "organization"', catalog) + + def test_hosted_calls_require_the_catalog_target_context(self): + manager = ToolManager() + manager.tools_registry = { + "tables_db_list": { + "definition": make_tool("tables_db_list", "List databases."), + "context_scope": "project", + }, + "domains_list": { + "definition": make_tool("domains_list", "List domains."), + "context_scope": "organization", + }, + } + runtime = Operator(manager, lambda *_: [], require_target_context=True) + + with self.assertRaisesRegex(ValueError, "requires project_id"): + runtime.execute_public_tool( + "appwrite_call_tool", {"tool_name": "tables_db_list"} + ) + with self.assertRaisesRegex(ValueError, "requires organization_id"): + runtime.execute_public_tool( + "appwrite_call_tool", {"tool_name": "domains_list"} + ) + + def test_stdio_calls_use_configured_project_without_target_argument(self): + manager = ToolManager() + manager.tools_registry = { + "tables_db_list": { + "definition": make_tool("tables_db_list", "List databases."), + "context_scope": "project", + } + } + runtime = Operator(manager, lambda *_: [], require_target_context=False) + + self.assertEqual( + runtime.execute_public_tool( + "appwrite_call_tool", {"tool_name": "tables_db_list"} + ), + [], + ) + def test_get_context_dispatches_provider(self): runtime = Operator( ToolManager(), diff --git a/tests/unit/test_server.py b/tests/unit/test_server.py index 97504aa..97962c5 100644 --- a/tests/unit/test_server.py +++ b/tests/unit/test_server.py @@ -10,11 +10,12 @@ from unittest.mock import Mock, patch import mcp.types as types -from appwrite.enums.browser import Browser -from appwrite.exception import AppwriteException -from appwrite.input_file import InputFile +from appwrite_console.enums.browser import Browser +from appwrite_console.exception import AppwriteException +from appwrite_console.input_file import InputFile from mcp_server_appwrite import server as server_module +from mcp_server_appwrite.catalog_policy import API_KEY_PROFILE, OAUTH_PROFILE from mcp_server_appwrite.server import ( _coerce_argument, _configure_uploads, @@ -573,8 +574,8 @@ async def run_check(): asyncio.run(run_check()) def test_register_services_returns_fresh_manager(self): - manager_a = register_services(object()) - manager_b = register_services(object()) + manager_a = register_services(object(), profile=OAUTH_PROFILE) + manager_b = register_services(object(), profile=OAUTH_PROFILE) self.assertIsNot(manager_a, manager_b) self.assertEqual(len(manager_a.get_all_tools()), len(manager_b.get_all_tools())) @@ -584,8 +585,28 @@ def test_register_services_returns_fresh_manager(self): {service.service_name for service in manager_a.services}, set(SERVICE_CLASSES), ) - # Every advertised service is registered (the SDK currently ships 14). - self.assertGreaterEqual(len(manager_a.services), 14) + self.assertEqual(len(manager_a.services), 38) + self.assertEqual(len(manager_a.get_all_tools()), 981) + + def test_api_key_profile_only_advertises_server_capabilities(self): + manager = register_services(object(), profile=API_KEY_PROFILE) + service_names = {service.service_name for service in manager.services} + tool_names = {tool.name for tool in manager.get_all_tools()} + + self.assertEqual(len(manager.services), 26) + self.assertEqual(len(tool_names), 647) + self.assertIn("documents_db_list", tool_names) + self.assertIn("vectors_db_list", tool_names) + self.assertIn("embeddings_create_text_embeddings", tool_names) + self.assertNotIn("domains", service_names) + self.assertNotIn("organizations", service_names) + self.assertNotIn("documents_db_list_operations", tool_names) + self.assertNotIn("account_list_invoices", tool_names) + + def test_console_sdk_internal_model_type_is_never_advertised(self): + manager = register_services(object(), profile=OAUTH_PROFILE) + for tool in manager.get_all_tools(): + self.assertNotIn("model_type", tool.input_schema["properties"]) def test_validate_services_raises_with_service_name(self): class FailingSdkService: diff --git a/tests/unit/test_service.py b/tests/unit/test_service.py index 6f3c56b..1be3bb3 100644 --- a/tests/unit/test_service.py +++ b/tests/unit/test_service.py @@ -2,7 +2,7 @@ from enum import Enum from typing import Any, Dict, List -from appwrite.input_file import InputFile +from appwrite_console.input_file import InputFile from mcp_server_appwrite.service import Service @@ -21,6 +21,7 @@ def create( points: List[Any], file: InputFile, optional_flag: bool = False, + model_type=None, on_progress=None, ) -> Dict[str, Any]: """ @@ -40,6 +41,8 @@ def create( File input. optional_flag : bool Optional boolean flag. + model_type : type, optional + Internal response model selector. on_progress : callable, optional Ignored callback. """ @@ -55,6 +58,7 @@ def test_generates_enum_and_input_file_schema(self): self.assertEqual(tool["definition"].description, "Create example resource.") self.assertNotIn("on_progress", schema["properties"]) + self.assertNotIn("model_type", schema["properties"]) self.assertEqual(schema["properties"]["mode"]["enum"], ["first", "second"]) self.assertEqual(schema["properties"]["mode"]["type"], "string") self.assertEqual(schema["properties"]["points"]["type"], "array") @@ -63,6 +67,23 @@ def test_generates_enum_and_input_file_schema(self): self.assertIn("file", schema["required"]) self.assertTrue(schema["additionalProperties"] is False) + def test_filters_methods_and_carries_context_metadata(self): + tools = Service( + ExampleService(), + "example", + allowed_methods=frozenset(), + context_scope="project", + ).list_tools() + self.assertEqual(tools, {}) + + tools = Service( + ExampleService(), + "example", + allowed_methods=frozenset({"create"}), + context_scope="project", + ).list_tools() + self.assertEqual(tools["example_create"]["context_scope"], "project") + if __name__ == "__main__": unittest.main() diff --git a/uv.lock b/uv.lock index d7c194b..e535617 100644 --- a/uv.lock +++ b/uv.lock @@ -38,16 +38,16 @@ wheels = [ ] [[package]] -name = "appwrite" -version = "22.2.0" +name = "appwrite-console" +version = "0.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/58/8f/3e28094d410d1b7c6ff1d5182ee1f5f1b9157e1e695666593e1ba31564cc/appwrite-22.2.0.tar.gz", hash = "sha256:ef08d16a6b8669405e8a44218cca167a24838ca419efe2c104b2461b0438a042", size = 188505, upload-time = "2026-07-24T06:15:08.007Z" } +sdist = { url = "https://files.pythonhosted.org/packages/40/b2/36866a4356930ea66cd9209060a43a7a4b775840788c493fa76ff6e4e7fd/appwrite_console-0.2.1.tar.gz", hash = "sha256:a3892c0e94ed211260f404646f7b82f9d8ae596a4a428590be63bc9fff476585", size = 293961, upload-time = "2026-08-03T17:01:20.336Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/b6/ec1c14d80fc324c432742b10f586041915eb6e0cd78111a05a8cd96a6e54/appwrite-22.2.0-py3-none-any.whl", hash = "sha256:12cc8c41e0f59e33ae5b2fcee04f06fe933ff977e2258148b4745e6bbd274379", size = 332277, upload-time = "2026-07-24T06:15:06.593Z" }, + { url = "https://files.pythonhosted.org/packages/b5/16/70b34ba7fe38a158c9d9879d88118f1dcf9ba900c70d58b1a9587c82ca76/appwrite_console-0.2.1-py3-none-any.whl", hash = "sha256:6aa4f5d32eadf0ecf3c98b2ef78b628443c8f01f58bc7e0855263c8af82a5b86", size = 515596, upload-time = "2026-08-03T17:01:18.886Z" }, ] [[package]] @@ -660,7 +660,7 @@ name = "mcp-server-appwrite" source = { editable = "." } dependencies = [ { name = "anyio" }, - { name = "appwrite" }, + { name = "appwrite-console" }, { name = "docstring-parser" }, { name = "httpx" }, { name = "mcp", extra = ["cli"] }, @@ -695,7 +695,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "anyio", specifier = ">=4.0.0" }, - { name = "appwrite", specifier = ">=22.2.0,<23" }, + { name = "appwrite-console", specifier = ">=0.2.1,<0.3" }, { name = "argon2-cffi", marker = "extra == 'integration'", specifier = ">=23.1.0" }, { name = "bcrypt", marker = "extra == 'integration'", specifier = ">=4.1.2" }, { name = "docstring-parser", specifier = ">=0.16" },