MCP Server

STILL

art.thisisstill/still-mcp
Knowledge & Documentation Media & Content Public & reachable MCP 2025-11-25

What this MCP does

Generates artwork credits, figure captions and Chicago, MLA or APA citations, and imports selected museum artwork records.

still_generate_citation
Generate artwork credits and citations
Format website/social credits, figure captions, Chicago 18, MLA 9 or APA 7 using the same engine as the STILL website. Supply exactly one of record or supported sourceUrl. One academic style per call. Preserve warnings and separate sourceRecommendedCitation. No image-use permission is granted.
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['outputs'], 'properties': {'style': {'enum': ['chicago', 'mla', 'apa'], 'type': 'string', 'description': 'Required for academic outputs: Chicago 18, MLA 9, APA 7. One style per call.'}, 'locale': {'enum': ['en', 'uk'], 'type': 'string', 'default': 'en', 'description': 'Formatting locale; does not translate source metadata.'}, 'record': {'type': 'object', 'properties': {'date': {'type': 'string', 'maxLength': 4000, 'description': 'Artwork creation date, including approximate dates exactly as supplied. Not the web page date.'}, 'title': {'type': 'string', 'maxLength': 4000, 'description': 'Artwork title as stated by the source.'}, 'artist': {'type': 'string', 'maxLength': 4000, 'description': 'Creator display name, unchanged from source.'}, 'medium': {'type': 'string', 'maxLength': 4000, 'description': 'Medium or technique from source.'}, 'rights': {'enum': ['', 'unknown', 'publicDomain', 'pdm', 'cc0', 'ccBy', 'ccBySa', 'other'], 'type': 'string', 'description': 'Exact image rights status from source: unknown, publicDomain, pdm, cc0, ccBy (4.0), ccBySa (4.0), or other. Use other for different versions.'}, 'location': {'type': 'string', 'maxLength': 4000, 'description': 'Collection city or location.'}, 'nameKind': {'enum': ['', 'personal', 'literal', 'unknown'], 'type': 'string', 'description': 'personal for verified name parts, literal for a studio or corporate creator, unknown for unknown creator.'}, 'pageDate': {'type': 'string', 'maxLength': 4000, 'description': 'Web page publication date YYYY-MM-DD, never the artwork date.'}, 'siteName': {'type': 'string', 'maxLength': 4000, 'description': 'Website name for museum_page citations.'}, 'givenName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified given name for a personal creator; do not infer from display name.'}, 'pageTitle': {'type': 'string', 'maxLength': 4000, 'description': 'Museum web page title when target=museum_page.'}, 'sourceUrl': {'type': 'string', 'maxLength': 4000, 'description': 'Original record page URL, not a direct image URL. This field in record is not fetched.'}, 'accessDate': {'type': 'string', 'maxLength': 4000, 'description': 'Actual date accessed YYYY-MM-DD; do not invent. Independent of source retrieval timestamps.'}, 'collection': {'type': 'string', 'maxLength': 4000, 'description': 'Museum or collection name.'}, 'familyName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified family name for a personal creator; do not guess.'}, 'licenceUrl': {'type': 'string', 'maxLength': 4000, 'description': 'Source licence URL for other rights.'}, 'pageAuthor': {'type': 'string', 'maxLength': 4000, 'description': 'Web page author, not automatically the artist.'}, 'customRights': {'type': 'string', 'maxLength': 4000, 'description': 'Verbatim rights statement for other.'}, 'figureNumber': {'type': 'string', 'maxLength': 4000, 'description': 'Optional figure number, 1 to 5 digits.'}, 'pageNameKind': {'enum': ['', 'personal', 'literal', 'unknown'], 'type': 'string', 'description': 'personal, literal for an organisation, or unknown.'}, 'photographer': {'type': 'string', 'maxLength': 4000, 'description': 'Photographer or image creator stated by source.'}, 'rightsHolder': {'type': 'string', 'maxLength': 4000, 'description': 'Rights holder stated by source.'}, 'changesAnswer': {'enum': ['', 'yes', 'no'], 'type': 'string', 'description': 'yes or no, only when known.'}, 'pageGivenName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified web page author given name.'}, 'pageFamilyName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified web page author family name.'}, 'requiredCredit': {'type': 'string', 'maxLength': 4000, 'description': 'Source-provided credit line. Preserved as supplied; the label does not establish a legal requirement.'}, 'previousChanges': {'type': 'string', 'maxLength': 4000, 'description': 'Source notice of earlier modifications.'}, 'changesDescription': {'type': 'string', 'maxLength': 4000, 'description': 'Actual changes for this use.'}, 'recommendedCitation': {'type': 'string', 'maxLength': 4000, 'description': 'Source-recommended citation retained separately from generated formats.'}}, 'description': 'Supplied metadata; use exactly one of record or sourceUrl.', 'additionalProperties': False}, 'target': {'enum': ['artwork', 'museum_page'], 'type': 'string', 'default': 'artwork'}, 'outputs': {'type': 'array', 'items': {'enum': ['website_credit', 'social_credit', 'figure_caption', 'bibliography', 'full_note', 'in_text'], 'type': 'string'}, 'maxItems': 6, 'minItems': 1, 'description': 'Credit outputs: website_credit, social_credit, figure_caption. Academic: bibliography, full_note (Chicago only), in_text (MLA/APA only).'}, 'sourceUrl': {'type': 'string', 'maxLength': 4000, 'description': 'Fetch an artwork record from The Met or Cleveland. Use record for other sources or museum_page targets.'}, 'provenance': {'type': 'object', 'required': ['method', 'sourceUrl', 'rightsCheckedAtUtc'], 'properties': {'scope': {'type': 'string'}, 'method': {'enum': ['supplied_metadata', 'source_api'], 'type': 'string'}, 'objectId': {'type': 'string'}, 'provider': {'type': 'string'}, 'rawRights': {}, 'sourceUrl': {'type': 'string'}, 'rightsCheckedAtUtc': {'type': ['string', 'null']}, 'metadataFetchedAtUtc': {'type': 'string'}}, 'description': 'Original provenance returned by still_resolve_artwork. Pass it unchanged with record to preserve source and UTC observation evidence.', 'additionalProperties': False}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['schemaVersion', 'toolId', 'version', 'status', 'record', 'results', 'sourceRecommendedCitation', 'provenance', 'generatedAtUtc'], 'properties': {'record': {'type': 'object', 'properties': {'date': {'type': 'string', 'maxLength': 4000, 'description': 'Artwork creation date, including approximate dates exactly as supplied. Not the web page date.'}, 'title': {'type': 'string', 'maxLength': 4000, 'description': 'Artwork title as stated by the source.'}, 'artist': {'type': 'string', 'maxLength': 4000, 'description': 'Creator display name, unchanged from source.'}, 'medium': {'type': 'string', 'maxLength': 4000, 'description': 'Medium or technique from source.'}, 'rights': {'enum': ['', 'unknown', 'publicDomain', 'pdm', 'cc0', 'ccBy', 'ccBySa', 'other'], 'type': 'string', 'description': 'Exact image rights status from source: unknown, publicDomain, pdm, cc0, ccBy (4.0), ccBySa (4.0), or other. Use other for different versions.'}, 'location': {'type': 'string', 'maxLength': 4000, 'description': 'Collection city or location.'}, 'nameKind': {'enum': ['', 'personal', 'literal', 'unknown'], 'type': 'string', 'description': 'personal for verified name parts, literal for a studio or corporate creator, unknown for unknown creator.'}, 'pageDate': {'type': 'string', 'maxLength': 4000, 'description': 'Web page publication date YYYY-MM-DD, never the artwork date.'}, 'siteName': {'type': 'string', 'maxLength': 4000, 'description': 'Website name for museum_page citations.'}, 'givenName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified given name for a personal creator; do not infer from display name.'}, 'pageTitle': {'type': 'string', 'maxLength': 4000, 'description': 'Museum web page title when target=museum_page.'}, 'sourceUrl': {'type': 'string', 'maxLength': 4000, 'description': 'Original record page URL, not a direct image URL. This field in record is not fetched.'}, 'accessDate': {'type': 'string', 'maxLength': 4000, 'description': 'Actual date accessed YYYY-MM-DD; do not invent. Independent of source retrieval timestamps.'}, 'collection': {'type': 'string', 'maxLength': 4000, 'description': 'Museum or collection name.'}, 'familyName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified family name for a personal creator; do not guess.'}, 'licenceUrl': {'type': 'string', 'maxLength': 4000, 'description': 'Source licence URL for other rights.'}, 'pageAuthor': {'type': 'string', 'maxLength': 4000, 'description': 'Web page author, not automatically the artist.'}, 'customRights': {'type': 'string', 'maxLength': 4000, 'description': 'Verbatim rights statement for other.'}, 'figureNumber': {'type': 'string', 'maxLength': 4000, 'description': 'Optional figure number, 1 to 5 digits.'}, 'pageNameKind': {'enum': ['', 'personal', 'literal', 'unknown'], 'type': 'string', 'description': 'personal, literal for an organisation, or unknown.'}, 'photographer': {'type': 'string', 'maxLength': 4000, 'description': 'Photographer or image creator stated by source.'}, 'rightsHolder': {'type': 'string', 'maxLength': 4000, 'description': 'Rights holder stated by source.'}, 'changesAnswer': {'enum': ['', 'yes', 'no'], 'type': 'string', 'description': 'yes or no, only when known.'}, 'pageGivenName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified web page author given name.'}, 'pageFamilyName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified web page author family name.'}, 'requiredCredit': {'type': 'string', 'maxLength': 4000, 'description': 'Source-provided credit line. Preserved as supplied; the label does not establish a legal requirement.'}, 'previousChanges': {'type': 'string', 'maxLength': 4000, 'description': 'Source notice of earlier modifications.'}, 'changesDescription': {'type': 'string', 'maxLength': 4000, 'description': 'Actual changes for this use.'}, 'recommendedCitation': {'type': 'string', 'maxLength': 4000, 'description': 'Source-recommended citation retained separately from generated formats.'}}, 'additionalProperties': False}, 'status': {'enum': ['ok', 'partial'], 'type': 'string'}, 'toolId': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'status', 'text', 'html', 'warnings'], 'properties': {'csl': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'html': {'type': 'string'}, 'kind': {'enum': ['website_credit', 'social_credit', 'figure_caption', 'bibliography', 'full_note', 'in_text'], 'type': 'string'}, 'text': {'type': 'string'}, 'status': {'enum': ['ready', 'needs_review'], 'type': 'string'}, 'styleId': {'type': 'string'}, 'warnings': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'fieldPath'], 'properties': {'code': {'type': 'string'}, 'fieldPath': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'styleEdition': {'type': 'number'}, 'styleRevision': {'type': 'string'}, 'formatterVersion': {'type': 'string'}, 'attributionCompleteness': {'type': 'string'}}, 'additionalProperties': False}}, 'version': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['method', 'sourceUrl', 'rightsCheckedAtUtc'], 'properties': {'scope': {'type': 'string'}, 'method': {'enum': ['supplied_metadata', 'source_api'], 'type': 'string'}, 'objectId': {'type': 'string'}, 'provider': {'type': 'string'}, 'rawRights': {}, 'sourceUrl': {'type': 'string'}, 'rightsCheckedAtUtc': {'type': ['string', 'null']}, 'metadataFetchedAtUtc': {'type': 'string'}}, 'additionalProperties': False}, 'schemaVersion': {'type': 'string', 'const': '1.0'}, 'generatedAtUtc': {'type': 'string'}, 'sourceRecommendedCitation': {'type': ['string', 'null']}}, 'additionalProperties': False}
still_get_capabilities
STILL tools and supported formats
Discover currently connected STILL modules, supported formats, locales and limitations. Search and calculators are not available yet.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
still_resolve_artwork
Import a museum artwork record
Retrieve a known artwork URL from The Met or Cleveland Museum of Art. Not artwork search. Returns source metadata and exact UTC observation time. Source statements are not legal clearance. Use manual record input for other museums.
Read only Open world Idempotent
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['sourceUrl'], 'properties': {'sourceUrl': {'type': 'string', 'maxLength': 4000}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['schemaVersion', 'status', 'record', 'provenance'], 'properties': {'record': {'type': 'object', 'properties': {'date': {'type': 'string', 'maxLength': 4000, 'description': 'Artwork creation date, including approximate dates exactly as supplied. Not the web page date.'}, 'title': {'type': 'string', 'maxLength': 4000, 'description': 'Artwork title as stated by the source.'}, 'artist': {'type': 'string', 'maxLength': 4000, 'description': 'Creator display name, unchanged from source.'}, 'medium': {'type': 'string', 'maxLength': 4000, 'description': 'Medium or technique from source.'}, 'rights': {'enum': ['', 'unknown', 'publicDomain', 'pdm', 'cc0', 'ccBy', 'ccBySa', 'other'], 'type': 'string', 'description': 'Exact image rights status from source: unknown, publicDomain, pdm, cc0, ccBy (4.0), ccBySa (4.0), or other. Use other for different versions.'}, 'location': {'type': 'string', 'maxLength': 4000, 'description': 'Collection city or location.'}, 'nameKind': {'enum': ['', 'personal', 'literal', 'unknown'], 'type': 'string', 'description': 'personal for verified name parts, literal for a studio or corporate creator, unknown for unknown creator.'}, 'pageDate': {'type': 'string', 'maxLength': 4000, 'description': 'Web page publication date YYYY-MM-DD, never the artwork date.'}, 'siteName': {'type': 'string', 'maxLength': 4000, 'description': 'Website name for museum_page citations.'}, 'givenName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified given name for a personal creator; do not infer from display name.'}, 'pageTitle': {'type': 'string', 'maxLength': 4000, 'description': 'Museum web page title when target=museum_page.'}, 'sourceUrl': {'type': 'string', 'maxLength': 4000, 'description': 'Original record page URL, not a direct image URL. This field in record is not fetched.'}, 'accessDate': {'type': 'string', 'maxLength': 4000, 'description': 'Actual date accessed YYYY-MM-DD; do not invent. Independent of source retrieval timestamps.'}, 'collection': {'type': 'string', 'maxLength': 4000, 'description': 'Museum or collection name.'}, 'familyName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified family name for a personal creator; do not guess.'}, 'licenceUrl': {'type': 'string', 'maxLength': 4000, 'description': 'Source licence URL for other rights.'}, 'pageAuthor': {'type': 'string', 'maxLength': 4000, 'description': 'Web page author, not automatically the artist.'}, 'customRights': {'type': 'string', 'maxLength': 4000, 'description': 'Verbatim rights statement for other.'}, 'figureNumber': {'type': 'string', 'maxLength': 4000, 'description': 'Optional figure number, 1 to 5 digits.'}, 'pageNameKind': {'enum': ['', 'personal', 'literal', 'unknown'], 'type': 'string', 'description': 'personal, literal for an organisation, or unknown.'}, 'photographer': {'type': 'string', 'maxLength': 4000, 'description': 'Photographer or image creator stated by source.'}, 'rightsHolder': {'type': 'string', 'maxLength': 4000, 'description': 'Rights holder stated by source.'}, 'changesAnswer': {'enum': ['', 'yes', 'no'], 'type': 'string', 'description': 'yes or no, only when known.'}, 'pageGivenName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified web page author given name.'}, 'pageFamilyName': {'type': 'string', 'maxLength': 4000, 'description': 'Verified web page author family name.'}, 'requiredCredit': {'type': 'string', 'maxLength': 4000, 'description': 'Source-provided credit line. Preserved as supplied; the label does not establish a legal requirement.'}, 'previousChanges': {'type': 'string', 'maxLength': 4000, 'description': 'Source notice of earlier modifications.'}, 'changesDescription': {'type': 'string', 'maxLength': 4000, 'description': 'Actual changes for this use.'}, 'recommendedCitation': {'type': 'string', 'maxLength': 4000, 'description': 'Source-recommended citation retained separately from generated formats.'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'ok'}, 'provenance': {'type': 'object', 'required': ['method', 'sourceUrl', 'rightsCheckedAtUtc'], 'properties': {'scope': {'type': 'string'}, 'method': {'enum': ['supplied_metadata', 'source_api'], 'type': 'string'}, 'objectId': {'type': 'string'}, 'provider': {'type': 'string'}, 'rawRights': {}, 'sourceUrl': {'type': 'string'}, 'rightsCheckedAtUtc': {'type': ['string', 'null']}, 'metadataFetchedAtUtc': {'type': 'string'}}, 'additionalProperties': False}, 'schemaVersion': {'type': 'string', 'const': '1.0'}}, 'additionalProperties': False}
Changed
still_generate_citation
Sept. 20, 2026, 2:40 a.m.
Added
still_generate_citation
Sept. 18, 2026, 2:40 a.m.
Added
still_resolve_artwork
Sept. 18, 2026, 2:40 a.m.
Added
still_get_capabilities
Sept. 18, 2026, 2:40 a.m.