confluence_get_page_by_title
Retrieve Confluence documentation pages by title to access specific information, with optional space key filtering for targeted search results.
Instructions
Get a Confluence page by its title.
Args: title: Page title space_key: Space key (optional, defaults to CONFLUENCE_SPACE_KEY env var)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| space_key | No | ||
| title | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- mpo_mcp/server.py:148-160 (handler)MCP handler function for the 'confluence_get_page_by_title' tool. Registers the tool with FastMCP and delegates execution to ConfluenceTools.get_page_by_title.
@mcp.tool() async def confluence_get_page_by_title( title: str, space_key: Optional[str] = None ) -> dict: """Get a Confluence page by its title. Args: title: Page title space_key: Space key (optional, defaults to CONFLUENCE_SPACE_KEY env var) """ return await confluence_tools.get_page_by_title( title=title, space_key=space_key ) - mpo_mcp/confluence_tools.py:218-281 (helper)Supporting utility in ConfluenceTools class that implements the core logic: fetches the page using Atlassian client.get_page_by_title, handles defaults and errors, and formats the response with ID, title, URL, version, space, and storage content.
async def get_page_by_title( self, title: str, space_key: Optional[str] = None ) -> Optional[Dict[str, Any]]: """ Get a page by its title. Args: title: Page title space_key: Space key (defaults to CONFLUENCE_SPACE_KEY env var) Returns: Page information or None if not found """ self._check_client() try: space_key = space_key or Config.CONFLUENCE_SPACE_KEY if not space_key: raise ValueError("Space key is required") page = self.client.get_page_by_title( space=space_key, title=title, expand="body.storage,version", ) if not page: return None result = { "id": page.get("id"), "title": page.get("title"), "type": page.get("type"), "status": page.get("status"), } # Add URL if "_links" in page and "webui" in page["_links"]: result["url"] = f"{Config.CONFLUENCE_URL}{page['_links']['webui']}" # Add version info if "version" in page: result["version"] = { "number": page["version"].get("number"), "by": page["version"].get("by", {}).get("displayName"), "when": page["version"].get("when"), } # Add space info if "space" in page: result["space"] = { "key": page["space"].get("key"), "name": page["space"].get("name"), } # Add content if "body" in page and "storage" in page["body"]: result["content"] = page["body"]["storage"].get("value") return result except Exception as e: logger.error(f"Confluence API error: {e}") raise ValueError(f"Failed to get page by title: {str(e)}") - llm_assistant.py:201-212 (schema)Explicit input schema definition for the tool, used in the LLM assistant integration with Claude.
{ "name": "confluence_get_page_by_title", "description": "Get a Confluence page by its title", "input_schema": { "type": "object", "properties": { "title": {"type": "string", "description": "Page title"}, "space_key": {"type": "string", "description": "Space key"}, }, "required": ["title"], }, },