Use when writing Flutter or Dart code, or answering questions about the Flutter or Dart API. Provides step-by-step guidance for using the flutterdocs MCP tools to look up accurate, version-grounded API documentation. Use when: generating Flutter widget code or Dart class usage; verifying constructor signatures, named parameters, or default values before writing code; answering questions about Flutter widget properties, methods, or constants; discovering the right widget or class for a task; checking any Flutter or Dart SDK API detail.
This skill defines when and how to use the flutterdocs MCP tools to produce accurate, version-grounded responses about Flutter and Dart APIs.
Use it when any of the following apply:
Skip it when all of the following apply:
Text, Column, Row, Scaffold, Navigator)BuildContext, reactive patterns)Do you know the exact class/mixin/enum/typedef name?
YES → lookupEntity(name)
→ getDocumentation(uri from result)
Do you know the method/property name (with or without its class)?
YES → lookupMember(name, [library])
→ getDocumentation(uri from result)
Do you need to find a widget or class by concept/behavior?
YES → searchDocumentation(query) ← space-separated AND terms
→ getDocumentation(uri from best result)
Do you need all available library slugs?
YES → listLibraries()
Use lookupEntity, lookupMember, or searchDocumentation to obtain:
material, dart-async, widgets)VisualDensity, ThemeData)copyWith, baseSizeAdjustment)Call getDocumentation with a flutter-docs:// URI constructed from the discovery result:
| Target | URI shape |
|---|---|
| Library | flutter-docs://api/{library_slug} |
| Class / enum / mixin | flutter-docs://api/{library_slug}/{entity} |
| Constructor / method / property | flutter-docs://api/{library_slug}/{entity}/{member} |
Important: Only use identifiers obtained from tool results. Never guess URIs or construct them from training data.
The markdown returned by getDocumentation contains embedded flutter-docs:// links. Follow these links by passing them directly to getDocumentation to drill into related types (e.g. from ThemeData → TextTheme → TextStyle).
The MCP tool names (lookupEntity, lookupMember, searchDocumentation, listLibraries, getDocumentation) are fixed in the server implementation. Your MCP client may prefix them with the configured server name (e.g., mcp_flutterdocs_lookupEntity when the server is named flutterdocs). The tool selection guidance above uses the short names; map to whatever prefix your client uses. If you rename the server, only the prefix changes — the tool names themselves do not.
Library slugs differ from display names:
dart:async → dart-asyncdart:io → dart-iodart:core → dart-coreUse listLibraries to resolve the correct slug if uncertain.
Before generating code using ListTile:
lookupEntity("ListTile") → ["material", "ListTile", "class"]getDocumentation("flutter-docs://api/material/ListTile") → review constructor and propertiesFinding a widget for nested scrolling:
searchDocumentation("nested scrollable") → review resultsgetDocumentation(uri) for the most relevant matchChecking a specific method signature:
lookupMember("effectiveConstraints") → ["material", "VisualDensity", "effectiveConstraints", "method"]getDocumentation("flutter-docs://api/material/VisualDensity/effectiveConstraints")