When using "codex mcp" as an mcp server, the "method" attribute of the notification does not comply with the mcp specification
Resolved 💬 1 comment Opened Sep 25, 2025 by dayeguilaiye Closed Jan 17, 2026
What version of Codex is running?
0.40.0
Which model were you using?
qwen3-next
What platform is your computer?
macos
What steps can reproduce the bug?
When using uv run codex mcp as an mcp server to integrate with the agent in agno, the functionality works normally, but the logs keep reporting errors saying "WARNING:root:Failed to validate notification: 13 validation errors for ServerNotification". I found that this error comes from the mcp Python SDK, where the notification's method field should only have a few fixed types and should not include codex/event.
What is the expected behavior?
mcp works without error or warning
What do you see instead?
Got logs like below:
WARNING:root:Failed to validate notification: 13 validation errors for ServerNotification
CancelledNotification.method
Input should be 'notifications/cancelled' [type=literal_error, input_value='codex/event', input_type=str]
For further information visit https://errors.pydantic.dev/2.11/v/literal_error
CancelledNotification.params.requestId
Field required [type=missing, input_value={'_meta': {'requestId': 2...f4-5ded18f9fa15.jsonl'}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
ProgressNotification.method
Input should be 'notifications/progress' [type=literal_error, input_value='codex/event', input_type=str]
For further information visit https://errors.pydantic.dev/2.11/v/literal_error
ProgressNotification.params.progressToken
Field required [type=missing, input_value={'_meta': {'requestId': 2...f4-5ded18f9fa15.jsonl'}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
ProgressNotification.params.progress
Field required [type=missing, input_value={'_meta': {'requestId': 2...f4-5ded18f9fa15.jsonl'}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
LoggingMessageNotification.method
Input should be 'notifications/message' [type=literal_error, input_value='codex/event', input_type=str]
For further information visit https://errors.pydantic.dev/2.11/v/literal_error
LoggingMessageNotification.params.level
Field required [type=missing, input_value={'_meta': {'requestId': 2...f4-5ded18f9fa15.jsonl'}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
LoggingMessageNotification.params.data
Field required [type=missing, input_value={'_meta': {'requestId': 2...f4-5ded18f9fa15.jsonl'}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
ResourceUpdatedNotification.method
Input should be 'notifications/resources/updated' [type=literal_error, input_value='codex/event', input_type=str]
For further information visit https://errors.pydantic.dev/2.11/v/literal_error
ResourceUpdatedNotification.params.uri
Field required [type=missing, input_value={'_meta': {'requestId': 2...f4-5ded18f9fa15.jsonl'}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.11/v/missing
ResourceListChangedNotification.method
Input should be 'notifications/resources/list_changed' [type=literal_error, input_value='codex/event', input_type=str]
For further information visit https://errors.pydantic.dev/2.11/v/literal_error
ToolListChangedNotification.method
Input should be 'notifications/tools/list_changed' [type=literal_error, input_value='codex/event', input_type=str]
For further information visit https://errors.pydantic.dev/2.11/v/literal_error
PromptListChangedNotification.method
Input should be 'notifications/prompts/list_changed' [type=literal_error, input_value='codex/event', input_type=str]
For further information visit https://errors.pydantic.dev/2.11/v/literal_error. Message was: method='codex/event' params={'_meta': {'requestId': 2}, 'id': '', 'msg': {'type': 'session_configured', 'session_id': '01997eb4-74f6-7762-b0f4-5ded18f9fa15', 'model': 'Qwen/Qwen3-Coder-30B-A3B-Instruct-FP8', 'history_log_id': 75073889, 'history_entry_count': 10, 'rollout_path': '/Users/xxxx/.codex/sessions/2025/09/25/rollout-2025-09-25T10-29-39-01997eb4-74f6-7762-b0f4-5ded18f9fa15.jsonl'}} jsonrpc='2.0'
Additional information
In the mcp documentation https://modelcontextprotocol.io/specification/2025-06-18/schema#notifications%2Fmessage, it seems there are indeed only a few fixed types of notifications
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗