{"name":"ooxml","version":"0.1.0","description":"OOXML (ECMA-376) reference server: prose search + schema lookup","tools":[{"name":"ooxml_search","description":"Semantic search across the ECMA-376 (Office Open XML) specification. Returns relevant sections based on natural language queries about WordprocessingML, SpreadsheetML, PresentationML, and more.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language search query (e.g., 'paragraph spacing', 'table borders')"},"part":{"type":"number","description":"Filter by part number: 1=Fundamentals, 2=OPC, 3=Compatibility, 4=Transitional"},"limit":{"type":"number","description":"Max results (default: 5, max: 20)"}},"required":["query"]}},{"name":"ooxml_section","description":"Get a specific section of the ECMA-376 specification by section ID (e.g., '17.3.2' for paragraph properties).","inputSchema":{"type":"object","properties":{"section_id":{"type":"string","description":"Section ID (e.g., '17.3.2', '17.4.1')"},"part":{"type":"number","description":"Part number (1-4)"}},"required":["section_id"]}},{"name":"ooxml_parts","description":"List ECMA-376 specification parts and their top-level sections.","inputSchema":{"type":"object","properties":{"part":{"type":"number","description":"Filter by part number (1-4)"}}}},{"name":"ooxml_element","description":"Look up an OOXML element by qname in a profile. Returns canonical symbol info (vocabulary, namespace, declared @type, profile membership, source). Accepts 'w:tbl', '{namespace}localName' (Clark form), or bare 'localName' (defaults to wml-main). Backed by the XSD schema graph: elements documented only in spec prose (Part 1 §15.x package parts, some appendix tables) won't resolve here. Fall back to ooxml_search or ooxml_section for prose lookups.","inputSchema":{"type":"object","properties":{"qname":{"type":"string","description":"Element qname, e.g. 'w:tbl' or '{...}tbl'."},"profile":{"type":"string","description":"Profile name (default: 'transitional')."}},"required":["qname"]}},{"name":"ooxml_type","description":"Look up a complexType or simpleType by qname in a profile. Tries complexType first, then simpleType. Accepts 'w:tbl', '{namespace}localName' (Clark form), or bare 'localName' (defaults to wml-main). Backed by the XSD schema graph: elements documented only in spec prose (Part 1 §15.x package parts, some appendix tables) won't resolve here. Fall back to ooxml_search or ooxml_section for prose lookups.","inputSchema":{"type":"object","properties":{"qname":{"type":"string","description":"Type qname, e.g. 'w:CT_Tbl' or 'CT_Tbl'."},"profile":{"type":"string","description":"Profile name (default: 'transitional')."}},"required":["qname"]}},{"name":"ooxml_children","description":"List the legal children of an element or complexType in document order. For an element, follows @type to its complexType first. Walks inheritance to union content from base types. Group refs are surfaced as-is; resolve them by calling ooxml_children on the group qname. Accepts 'w:tbl', '{namespace}localName' (Clark form), or bare 'localName' (defaults to wml-main). Backed by the XSD schema graph: elements documented only in spec prose (Part 1 §15.x package parts, some appendix tables) won't resolve here. Fall back to ooxml_search or ooxml_section for prose lookups.","inputSchema":{"type":"object","properties":{"qname":{"type":"string","description":"Element, complexType, or group qname (e.g. 'w:tbl', 'CT_Tbl', 'EG_PContent')."},"profile":{"type":"string","description":"Profile name (default: 'transitional')."}},"required":["qname"]}},{"name":"ooxml_attributes","description":"List the attributes of an element or complexType. For an element, follows @type to its complexType first. Walks inheritance and unfolds attributeGroup refs recursively. Each entry includes use (required/optional/prohibited), default, fixed, and type_ref. Accepts 'w:tbl', '{namespace}localName' (Clark form), or bare 'localName' (defaults to wml-main). Backed by the XSD schema graph: elements documented only in spec prose (Part 1 §15.x package parts, some appendix tables) won't resolve here. Fall back to ooxml_search or ooxml_section for prose lookups.","inputSchema":{"type":"object","properties":{"qname":{"type":"string","description":"Element or complexType qname."},"profile":{"type":"string","description":"Profile name (default: 'transitional')."}},"required":["qname"]}},{"name":"ooxml_enum","description":"List enumeration values for a simpleType. Pass the simpleType qname (e.g. 'w:ST_Jc' or 'ST_Jc') and get back the values in declaration order. Accepts 'w:tbl', '{namespace}localName' (Clark form), or bare 'localName' (defaults to wml-main). Backed by the XSD schema graph: elements documented only in spec prose (Part 1 §15.x package parts, some appendix tables) won't resolve here. Fall back to ooxml_search or ooxml_section for prose lookups.","inputSchema":{"type":"object","properties":{"qname":{"type":"string","description":"simpleType qname."},"profile":{"type":"string","description":"Profile name (default: 'transitional')."}},"required":["qname"]}},{"name":"ooxml_namespace","description":"Inspect or discover namespaces in the schema graph. Three modes: (1) `uri` exact match → full report (vocabularies, per-profile symbol counts); (2) `query` substring (case-insensitive, e.g. 'drawingml' or 'customXml') → list of matching namespaces; (3) no args → list every ingested namespace. Note the schema-graph URI for a namespace can differ from the URI used in spec prose (e.g. custom XML data storage); the schema-graph URI is what this tool keys on.","inputSchema":{"type":"object","properties":{"uri":{"type":"string","description":"Exact namespace URI to look up."},"query":{"type":"string","description":"Case-insensitive substring to match against namespace URIs. Use when you don't have the exact URI."}}}},{"name":"ooxml_package_part","description":"Look up OPC (Open Packaging Conventions) part types: content type, source relationship type, root namespace and element, typical paths in the package. Answers 'what kind of part is /customXml/item1.xml?' — package metadata that the schema graph doesn't capture. Four modes: (1) `content_type` exact match (e.g. 'application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml'); (2) `relationship_type` exact match (e.g. '.../officeDocument/2006/relationships/customXmlProps'); (3) `query` case-insensitive substring across name, content type, relationship type, root namespace and element; (4) no args → list every curated part. Curated from ECMA-376 Part 1 §11.3.x / §12.3.x / §13.3.x / §15.x; covers Word / Excel / PowerPoint plus cross-cutting (properties, theme, image, custom XML).","inputSchema":{"type":"object","properties":{"content_type":{"type":"string","description":"Exact OPC content type (Content_Types.xml value)."},"relationship_type":{"type":"string","description":"Exact source relationship type URI."},"query":{"type":"string","description":"Case-insensitive substring across name, content type, relationship type, namespace, element, notes."}}}}]}