o
2V�h � @ s� d dl mZ d dlZd dlmZ d dlZdZdZdZdZ dZ
ed �Zd
efdd�Z
d
efdd�Zdedefdd�Ze�� d
edefdd��ZedkrSejddd� dS dS )� )�FastMCPN)�
BeautifulSoupz<https://mock-data.atlassian.net/wiki/rest/api/content/searchz'~712020daed5d59750c4ded965c600b01a4cc45z&lakshmi.gayathri.rangaraju@walmart.comz�ATATT3xFfGF0ze2SQTFxl152qNKfTfkxH9qykjIzC9ECOchmyjqtV5_g2wY0H2e3HUtyn2XijtZcKG4mMQpxZScX7ItsDijTvigqoDQeCclwTSoCzIIIw-dVHk06l3kgN_Gsi4o4VPACaAp5NqTJQecmCeUPK59kzXgo8R41kvMoZnzYj8kKfbw=287FD2C5z#http://localhost:11434/api/generatezConfluence MCP�queryc C s� d| � dt � d�dd�}tjt|ttfd�}|�� |�� }g }|�dg �D ]}|�d�}d |d
d � �}|�||d�� q&|S )
z-Search Confluence and return a list of pages.zsiteSearch ~ 'z' AND space = '�'� )Zcql�limit)�params�auth�results�titlez$https://mock-data.atlassian.net/wikiZ_linksZwebui)r �url) �CONFLUENCE_SPACE_KEY�requests�get�CONFLUENCE_URL�CONFLUENCE_API_USER�CONFLUENCE_API_TOKEN�raise_for_status�json�append)r r �response�datar
�itemr �link� r �EC:\Users\rlgay\Documents\Projects\confluence-mcp-server\MCP\server.py�confluence_search s �
r r c C s2 t j| ttfd�}|�� t|jd�}|jdd�S )z6Fetch and extract text content from a Confluence page.)r zhtml.parser�
)� separator)r r r r r r �textZget_text)r �respZsoupr r r �fetch_page_content! s r! r �returnc C s6 dd| � �d�}t jt|d�}|�� |�� �dd�S )zSummarize text using Ollama.Z tinyllamaz2Summarize the following content in simple terms:
)�model�prompt)r r � )r Zpost�OLLAMA_API_URLr r r )r �payloadr r r r �summarize_with_ollama( s �r( c C s� t | �}g }|D ]`}z?t|d �}d�|�� �}td|d � d|d � d�� td|� �� t|dd � �}|�d
|d � d|� d|d � �� W q tyh } z|�d
|d � d|� �� W Y d}~qd}~ww d�|�S )z;Search Confluence space and summarize content from results.r � zFetched content for r z (�)z
Content : N�d z**z**
z
URL: zFailed to fetch z: z
)r r! �join�split�printr( r � Exception)r Zsearch_resultsZ summaries�result�contentZsummary�er r r �confluence_search_and_summarize2 s (&��
r3 �__main__�httpi� )� transport�port)Zfastmcpr r Zbs4r r r r
r r r&