The issue I guess it’s caused by prompt or base function. In my dialog, llm can get mcp. But it cannot list them. I had to list all tool manuelly. I’ve printed the mcp stream, it showed each request was answered rightly. It’s unable to attach the log file so I just put a part of them here.
[2026-01-19 16:29:47.224] READ_ASYNC: {“method”:“notifications/initialized”,“jsonrpc”:“2.0”}
[2026-01-19 16:29:47.225] WRITE_ASYNC_MEMORY: Completed writing 243 bytes
[2026-01-19 16:29:47.225] READ_ASYNC_MEMORY: Read 55 bytes
[2026-01-19 16:29:47.226] FLUSH_ASYNC: Starting async flush
[2026-01-19 16:29:47.227] READ_ASYNC_MEMORY: Reading up to 4096 bytes into Memory
[2026-01-19 16:29:47.228] FLUSH_ASYNC: Async flush completed
[2026-01-19 16:29:47.229] READ_ASYNC: {“method”:“resources/list”,“jsonrpc”:“2.0”,“id”:1}
{“method”:“tools/list”,“jsonrpc”:“2.0”,“id”:2}
[2026-01-19 16:29:47.229] READ_ASYNC_MEMORY: Read 98 bytes
[2026-01-19 16:29:47.230] READ_ASYNC_MEMORY: Reading up to 4096 bytes into Memory
[2026-01-19 16:29:47.234] WRITE_ASYNC_MEMORY: Writing 52 bytes from ReadOnlyMemory
[2026-01-19 16:29:47.235] WRITE_ASYNC_MEMORY_CONTENT: {“jsonrpc”:“2.0”,“id”:1,“result”:{“resources”:
}}
[2026-01-19 16:29:47.236] WRITE_ASYNC_MEMORY: Completed writing 52 bytes
[2026-01-19 16:29:47.236] FLUSH_ASYNC: Starting async flush
[2026-01-19 16:29:47.237] FLUSH_ASYNC: Async flush completed
[2026-01-19 16:29:47.246] WRITE_ASYNC_MEMORY: Writing 3196 bytes from ReadOnlyMemory
[2026-01-19 16:29:47.247] WRITE_ASYNC_MEMORY_CONTENT: {“jsonrpc”:“2.0”,“id”:2,“result”:{“tools”:[{“name”:“open_setting_manager”,“description”:“Open JiraAndP4SettingManager to configure Jira/Confluence credentials”,“inputSchema”:{“type”:“object”,“properties”:{},“required”:
,“additionalProperties”:false}},{“name”:“set_confluence_url”,“description”:“Set Confluence server URL (credentials are managed by JiraAndP4SettingManager)”,“inputSchema”:{“type”:“object”,“properties”:{“serverUrl”:{“type”:“string”,“description”:“Confluence server URL (e.g., https://wiki.garena.com)”}},“required”:
,“additionalProperties”:false}},{“name”:“search_pages_by_title”,“description”:“Search Confluence pages by title containing specific text”,“inputSchema”:{“type”:“object”,“properties”:{“titleText”:{“type”:“string”,“description”:“Text to search for in page titles”},“spaceKey”:{“type”:“string”,“description”:“Optional space key to limit search (e.g., \u0022DEV\u0022, \u0022PROD\u0022). If empty, searches all spaces”},“limit”:{“type”:“number”,“description”:“Maximum number of results to return (default: 25)”}},“required”:
,“additionalProperties”:false}},{“name”:“get_page_content”,“description”:“Get full content of a Confluence page by ID”,“inputSchema”:{“type”:“object”,“properties”:{“pageId”:{“type”:“string”,“description”:“The ID of the page to retrieve”}},“required”:
,“additionalProperties”:false}},{“name”:“search_pages_with_content”,“description”:“Search pages by title and return with full content”,“inputSchema”:{“type”:“object”,“properties”:{“titleText”:{“type”:“string”,“description”:“Text to search for in page titles”},“spaceKey”:{“type”:“string”,“description”:“Optional space key to limit search. If empty, searches all spaces”},“limit”:{“type”:“number”,“description”:“Maximum number of results to return (default: 10)”}},“required”:
,“additionalProperties”:false}},{“name”:“get_confluence_image”,“description”:“Download and return Confluence image as base64 encoded data”,“inputSchema”:{“type”:“object”,“properties”:{“imageUrl”:{“type”:“string”,“description”:“Complete image URL or relative URL from Confluence (e.g., /download/attachments/123/image.png)”}},“required”:
,“additionalProperties”:false}},{“name”:“get_confluence_status”,“description”:“Get current Confluence configuration and connection status”,“inputSchema”:{“type”:“object”,“properties”:{},“required”:
,“additionalProperties”:false}},{“name”:“download_page_html”,“description”:“Download Confluence page HTML to a temporary file for editing”,“inputSchema”:{“type”:“object”,“properties”:{“pageId”:{“type”:“string”,“description”:“The ID of the page to download”},“outputPath”:{“type”:“string”,“description”:“Optional custom output path. If not provided, saves to system temp directory”}},“required”:
,“additionalProperties”:false}},{“name”:“upload_page_html”,“description”:“Upload HTML content from a file to update a Confluence page”,“inputSchema”:{“type”:“object”,“properties”:{“pageId”:{“type”:“string”,“description”:“The ID of the page to update”},“htmlFilePath”:{“type”:“string”,“description”:“Path to the HTML file containing the new content”},“comment”:{“type”:“string”,“description”:“Optional version comment/message”}},“required”:
,“additionalProperties”:false}}]}}
[2026-01-19 16:29:47.248] WRITE_ASYNC_MEMORY: Completed writing 3196 bytes
[2026-01-19 16:29:47.249] READ_ASYNC: {“method”:“prompts/list”,“jsonrpc”:“2.0”,“id”:3}
[2026-01-19 16:29:47.250] READ_ASYNC_MEMORY: Read 49 bytes
[2026-01-19 16:29:47.251] FLUSH_ASYNC: Starting async flush
[2026-01-19 16:29:47.252] READ_ASYNC_MEMORY: Reading up to 4096 bytes into Memory
[2026-01-19 16:29:47.252] FLUSH_ASYNC: Async flush completed
[2026-01-19 16:29:47.255] WRITE_ASYNC_MEMORY: Writing 580 bytes from ReadOnlyMemory
[2026-01-19 16:29:47.256] WRITE_ASYNC_MEMORY_CONTENT: {“jsonrpc”:“2.0”,“id”:3,“result”:{“prompts”:[{“name”:“confluence_search_guide”,“title”:“\u6587\u6863\u641C\u7D22\u6307\u5357”,“description”:“\u6309\u6807\u9898\u3001\u5185\u5BB9\u3001\u7A7A\u95F4\u641C\u7D22\u6587\u6863”},{“name”:“confluence_content_editing”,“title”:“\u5185\u5BB9\u7F16\u8F91\u6700\u4F73\u5B9E\u8DF5”,“description”:“\u4E0B\u8F7D\u3001\u7F16\u8F91\u3001\u4E0A\u4F20\u6587\u6863\u6D41\u7A0B”},{“name”:“confluence_page_management”,“title”:“\u9875\u9762\u7BA1\u7406\u6307\u5357”,“description”:“\u83B7\u53D6\u9875\u9762\u5185\u5BB9\u3001\u9644\u4EF6\u7BA1\u7406”}]}}
[2026-01-19 16:29:47.257] WRITE_ASYNC_MEMORY: Completed writing 580 bytes
[2026-01-19 16:29:47.257] FLUSH_ASYNC: Starting async flush
[2026-01-19 16:29:47.258] READ_ASYNC: {“method”:“resources/list”,“jsonrpc”:“2.0”,“id”:4}