Skip to main content
Glama

Notion MCP Server

by ccabanillas
server.cpython-313.pyc7.49 kB
� �TOg�!� ���SrSSKJr SSKJr SSKJrJrJrJ r SSK J r J r J r JrJr SSKrSSKJr SSKrSSKJr SS KJr S S KJr S S KJrJrJr \R:"\R<S 9 \R>"S5r \"\!5RDRDRDr#\#S- r$\$RK5(d \&"S\$35e\"\$5 \"S5r'\RP"S5r)\)(d\*"S5e\"\)5r+\'RY5S\ \4Sj5r,\'R[5S\.S\ S\\\ -4Sj5r-Sr/\0S:XaSSK1r1\1Rd"\/"55 gg)z1MCP server implementation for Notion integration.�)�Server)� stdio_server)�Resource�Tool� TextContent�EmbeddedResource)�Any�Dict�List�Optional�SequenceN)�datetime)�Path)� load_dotenv�)� NotionClient)�Database�Page� SearchResults)�level� notion_mcpz.envzNo .env file found at z notion-mcp�NOTION_API_KEYz%NOTION_API_KEY not found in .env file�returnc��# �[SSS0/S.S9[SSSSS S .SS S .S S S .S.S/S.S9[SSSSSS .SSS .S SS .S.SS/S.S9[SSSSSS .SSS .SSS .S.SS/S.S9[SS SSS!S .SS S .SS S .S".S#/S.S9/$7f)$zList available Notion tools.�list_databasesz$List all accessible Notion databases�object)�type� properties�required)�name� description� inputSchema�query_databasez"Query items from a Notion database�stringzID of the database to query)rr!zOptional filter criteria�arrayzOptional sort criteria�� database_id�filter�sortsr'� create_pagezCreate a new page in a databasez(ID of the database to create the page inzPage propertieszOptional page content blocks)r'r�childrenr� update_pagezUpdate an existing pagezID of the page to updatezUpdated page properties�booleanzWhether to archive the page��page_idr�archivedr/�searchzSearch Notion contentz Search query��queryr(�sortr3)r���C/Users/chasecabanillas/Projects/notion-mcp/src/notion_mcp/server.py� list_toolsr8&sb��� �!�>� � ��� � �!�<� �!)�'D�$� !)�'A�� !(�'?�� �+�O�!� �, ��9� �!)�'Q�$� !)�'8�#� !(�'E�!� �+�L�9�!� �, ��1� �!)�'A� � !)�'@�#� !*�'D�!� �'� �5�!� �, ��/� �!)�'5�� !)�'A�� !)�'?�� �%�I�!� �Yb �b�s�BBr � argumentsc ��^# �US:Xa;[R5IShv�N n[S[US9R SS9S9/$US:Xa�[ U[ 5(d [S 5eURS 5nU(d [S 5e[RUURS 5URS 5S9IShv�N n[S[USS9R SS9S9/$US:Xa�[ U[ 5(d [S 5eURS 5nURS5nU(aU(d [S5e[RUUURS5S9IShv�N n[SUR SS9S9/$US:Xa�[ U[ 5(d [S 5eURS5nURS5nU(aU(d [S5e[RUUURS5S9IShv�N n[SUR SS9S9/$US:Xa�[ U[ 5(d [S 5eURSS5n[RUURS 5URS5S9IShv�N n[SUR SS9S9/$[SU35eGN�GN GNaN�N5![aEn [RS US![!U 535 [SS"[!U 53S9/sSn A $Sn A ff=f7f)#z(Handle tool calls for Notion operations.rN�text)�results�)�indent)rr;r#zInvalid argumentsr'zdatabase_id is requiredr(r)r&r<r*rz'database_id and properties are requiredr+)� parent_idrr+r,r/z#page_id and properties are requiredr0r.r1r3�r4r2zUnknown tool: zError in tool z: zError: )� notion_clientrrr�model_dump_json� isinstance�dict� ValueError�getr#r*r,r1� Exception�logger�error�str) r r9� databasesr'r<r�pager/r3�es r7� call_toolrN�sQ���c � �#� #�+�:�:�<�<�I���&�y�9�I�I�QR�I�S��� ��%� %��i��.�.� �!4�5�5�#�-�-� �6�K�� �!:�;�;�)�8�8�'� �}�}�X�.��m�m�G�,�9���G� ��&�w�y�/A�B�R�R�Z[�R�\��� ��]� "��i��.�.� �!4�5�5�#�-�-� �6�K�"���|�4�J��j� �!J�K�K�&�2�2�%�%�"���z�2�3���D� ���-�-�Q�-�7��� ��]� "��i��.�.� �!4�5�5��m�m�I�.�G�"���|�4�J��*� �!F�G�G�&�2�2��%�"���z�2�3���D� ���-�-�Q�-�7��� ��X� ��i��.�.� �!4�5�5��M�M�'�2�.�E�)�0�0�� �}�}�X�.��]�]�6�*�1���G� �� �0�0��0�:��� ��~�d�V�4�5� 5�q=� �*�*�"�� � �� � �~�d�V�2�c�!�f�X�6�7� ���s�1�v�h�'� � � �� �s��L-�K�K�"K�L-�A?K�K�%K�*L-�+BK�3K�4K�L-�BK�K�K�4L-�5A.K�#K�$K�?L-�K�K�K�K�K� L*�%:L%�L*� L-�%L*�*L-c��$# �[(d [S5e[5IShv�N up[R UU[R 55IShv�N SSS5IShv�N gNHNN !,IShv�N (df  g=f7f)zRun the server.z/NOTION_API_KEY environment variable is requiredN)rrEr�server�run�create_initialization_options)� read_stream� write_streams r7�mainrU�sc��� �>��J�K�K��~�~�!<�+��j�j� � � � 0� 0� 2� � � ��~�~� ��~�~�~�sV�%B�A0�B�/A6�A2�A6� B�*A4�+B�2A6�4B�6B �<A? �= B � B�__main__)3�__doc__� mcp.serverr�mcp.server.stdior� mcp.typesrrrr�typingr r r r r �osr�logging�pathlibr�dotenvr�clientr� models.notionrrr� basicConfig�INFO� getLoggerrH�__file__�parent� project_root�env_path�exists�FileNotFoundErrorrP�getenvrrErAr8rNrJrU�__name__�asynciorQr5r6r7�<module>rnso��7��)�C�C�6�6� ����� �8�8����'�,�,�'� � � �<� (���H�~�$�$�+�+�2�2� � �&� ������� �4�X�J�?� @�@� �H�� � � �����+�,��� �<� =�=��^�,� �����d�$�t�*�d��d�L����e �#�e �#�e �(�;�IY�;Y�2Z�e ��e �N  � �z��� �K�K����r6

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ccabanillas/notion-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server