* fix: preserve const values in OpenAPI to JSON Schema conversion
The parser was dropping const values when converting OpenAPI schemas to
JSON Schema, breaking oneOf discriminators. This is critical for schemas
like parentRequest where const values distinguish between page_id,
database_id, and workspace parent types.
- Add const value handling in convertOpenApiSchemaToJsonSchema
- Add test case verifying const preservation for oneOf discriminators
* fix: allow any property in page create/update schemas
The properties schema in patch-page and post-page operations was
incorrectly restricting allowed properties to only "title" with
additionalProperties: false. This prevented updating or creating
pages with database-specific properties like "Status", "Priority", etc.
Changes:
- Remove restrictive property definitions from patch-page properties schema
- Remove restrictive property definitions from post-page properties schema
- Set additionalProperties: true to allow any property name
This fix addresses the root cause of issues #153 and #164 where
notion-update-page and notion-create-pages fail schema validation
for database page properties.
The Notion API accepts any property defined in the parent database
schema - the previous restriction was blocking valid requests.
Tested against live Notion API v2025-09-03:
- Successfully updated "Related Features" (rich_text) property
- Custom database properties work correctly
* fix: resolve TypeScript errors in const handling
- Add type assertion for const value in parser.ts
- Fix test spec type to avoid OpenAPIV3 type restrictions on const
---------
Co-authored-by: Daniel Ostrow <daniel@neuralintellect.com>
* feat: add streamable HTTP transport and NOTION_TOKEN environment variable support
Major enhancements:
🌐 **Streamable HTTP Transport (SSE)**
- Add support for Server-Sent Events transport alongside existing stdio
- Implement bearer token authentication for HTTP endpoints
- Add command-line options: --transport, --port, --auth-token
- Support auto-generated or custom authentication tokens
- Include health check endpoint and proper session management
- Enable web-based applications to use MCP over HTTP
🔑 **NOTION_TOKEN Environment Variable**
- Add simplified configuration using NOTION_TOKEN env var
- Automatically set Authorization header and Notion-Version
- Maintain backward compatibility with OPENAPI_MCP_HEADERS
- Prioritize OPENAPI_MCP_HEADERS when both are present
- Update documentation with recommended NOTION_TOKEN usage
📚 **Documentation & Configuration**
- Add comprehensive transport options section to README
- Update npm, Docker, and Smithery configuration examples
- Include authentication and usage examples for both transports
- Add command-line help and usage instructions
🔧 **Dependencies & Testing**
- Upgrade @modelcontextprotocol/sdk to v1.13.3
- Extend test coverage for new NOTION_TOKEN functionality
- Update Smithery configuration to support both token methods
This update makes the MCP server more accessible and flexible while maintaining full backward compatibility.
* fix: update transport terminology from SSE to Streamable HTTP
- Replace all "SSE" references with "Streamable HTTP" terminology
- Update transport option from --transport sse to --transport http
- Update documentation to use correct MCP transport naming
- Fix docker-compose to docker compose command
- Address PR #75 review comments about deprecated SSE terminology
Addresses: https://github.com/makenotion/notion-mcp-server/pull/75
---------
Co-authored-by: Alex Shershebnev <alexs@forgood.ai>