Skip to content

Commit 73b1799

Browse files
committed
Rename pollFrequency to pollInterval
1 parent af38579 commit 73b1799

File tree

8 files changed

+29
-29
lines changed

8 files changed

+29
-29
lines changed

examples/shared/in_memory_task_store.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ async def create_task(self, task: TaskMetadata, request_id: RequestId, request:
5252
taskId=task_id,
5353
status="submitted",
5454
keepAlive=task.keepAlive,
55-
pollFrequency=500, # Default 500ms poll frequency
55+
pollInterval=500, # Default 500ms poll frequency
5656
)
5757

5858
self._tasks[task_id] = StoredTask(task=task_obj, request=request, request_id=request_id)

src/mcp/client/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ async def _received_request(self, responder: RequestResponder[types.ServerReques
636636
taskId=task.taskId,
637637
status=task.status,
638638
keepAlive=task.keepAlive,
639-
pollFrequency=task.pollFrequency,
639+
pollInterval=task.pollInterval,
640640
error=task.error,
641641
_meta={types.RELATED_TASK_META_KEY: {"taskId": params.taskId}},
642642
)

src/mcp/server/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ async def _received_request( # noqa: PLR0912
209209
taskId=task.taskId,
210210
status=task.status,
211211
keepAlive=task.keepAlive,
212-
pollFrequency=task.pollFrequency,
212+
pollInterval=task.pollInterval,
213213
error=task.error,
214214
_meta={types.RELATED_TASK_META_KEY: {"taskId": params.taskId}},
215215
)

src/mcp/shared/request.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ async def _task_handler(
179179
break
180180

181181
# Wait before polling again
182-
poll_frequency = task.pollFrequency if task.pollFrequency is not None else DEFAULT_POLLING_INTERVAL * 1000
182+
poll_frequency = task.pollInterval if task.pollInterval is not None else DEFAULT_POLLING_INTERVAL * 1000
183183
await anyio.sleep(poll_frequency / 1000.0)
184184

185185
# Retrieve and return the result

src/mcp/shared/task.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ async def get_task(self, task_id: str) -> Task | None:
3737
task_id: The task identifier
3838
3939
Returns:
40-
The task state including status, keepAlive, pollFrequency, and optional error,
40+
The task state including status, keepAlive, pollInterval, and optional error,
4141
or None if task not found
4242
"""
4343
...

src/mcp/types.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,7 @@ class Task(BaseModel):
490490
None means the task will not be automatically cleaned up.
491491
"""
492492

493-
pollFrequency: int | None = None
493+
pollInterval: int | None = None
494494
"""Recommended polling frequency in milliseconds for checking task status."""
495495

496496
error: str | None = None
@@ -540,7 +540,7 @@ class GetTaskResult(Result):
540540
keepAlive: int | None = None
541541
"""Time in milliseconds to keep task results available after completion."""
542542

543-
pollFrequency: int | None = None
543+
pollInterval: int | None = None
544544
"""Recommended polling frequency in milliseconds for checking task status."""
545545

546546
error: str | None = None

tests/shared/test_pending_request.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ async def never_completes():
9999

100100
# Set up task status progression
101101
mock_session.get_task.side_effect = [
102-
GetTaskResult(taskId="task-1", status="submitted", pollFrequency=100),
103-
GetTaskResult(taskId="task-1", status="working", pollFrequency=100),
104-
GetTaskResult(taskId="task-1", status="completed", pollFrequency=100),
102+
GetTaskResult(taskId="task-1", status="submitted", pollInterval=100),
103+
GetTaskResult(taskId="task-1", status="working", pollInterval=100),
104+
GetTaskResult(taskId="task-1", status="completed", pollInterval=100),
105105
]
106106
mock_session.get_task_result.return_value = sample_result
107107

@@ -142,8 +142,8 @@ async def never_completes():
142142

143143
# Set up task status progression
144144
task_statuses = [
145-
GetTaskResult(taskId="task-2", status="submitted", pollFrequency=50),
146-
GetTaskResult(taskId="task-2", status="completed", pollFrequency=50),
145+
GetTaskResult(taskId="task-2", status="submitted", pollInterval=50),
146+
GetTaskResult(taskId="task-2", status="completed", pollInterval=50),
147147
]
148148
mock_session.get_task.side_effect = task_statuses
149149
mock_session.get_task_result.return_value = sample_result
@@ -176,7 +176,7 @@ async def notify_created():
176176
async def test_polling_interval_respects_poll_frequency(
177177
self, mock_session: MagicMock, sample_result: CallToolResult
178178
):
179-
"""Test that polling interval respects pollFrequency from task."""
179+
"""Test that polling interval respects pollInterval from task."""
180180
task_created_event = asyncio.Event()
181181
task_created_event.set()
182182

@@ -193,9 +193,9 @@ async def never_completes():
193193
async def mock_get_task(task_id: str):
194194
poll_times.append(asyncio.get_event_loop().time())
195195
if len(poll_times) == 1:
196-
return GetTaskResult(taskId=task_id, status="submitted", pollFrequency=100) # 100ms
196+
return GetTaskResult(taskId=task_id, status="submitted", pollInterval=100) # 100ms
197197
else:
198-
return GetTaskResult(taskId=task_id, status="completed", pollFrequency=100)
198+
return GetTaskResult(taskId=task_id, status="completed", pollInterval=100)
199199

200200
mock_session.get_task.side_effect = mock_get_task
201201
mock_session.get_task_result.return_value = sample_result
@@ -220,7 +220,7 @@ async def mock_get_task(task_id: str):
220220
async def test_polling_uses_default_interval_when_not_specified(
221221
self, mock_session: MagicMock, sample_result: CallToolResult
222222
):
223-
"""Test that default polling interval is used when pollFrequency is None."""
223+
"""Test that default polling interval is used when pollInterval is None."""
224224
task_created_event = asyncio.Event()
225225
task_created_event.set()
226226

@@ -236,9 +236,9 @@ async def never_completes():
236236
async def mock_get_task(task_id: str):
237237
poll_times.append(asyncio.get_event_loop().time())
238238
if len(poll_times) == 1:
239-
return GetTaskResult(taskId=task_id, status="submitted", pollFrequency=None)
239+
return GetTaskResult(taskId=task_id, status="submitted", pollInterval=None)
240240
else:
241-
return GetTaskResult(taskId=task_id, status="completed", pollFrequency=None)
241+
return GetTaskResult(taskId=task_id, status="completed", pollInterval=None)
242242

243243
mock_session.get_task.side_effect = mock_get_task
244244
mock_session.get_task_result.return_value = sample_result
@@ -279,7 +279,7 @@ async def get_result():
279279
# Set up task polling to be slow
280280
async def slow_get_task(task_id: str):
281281
await asyncio.sleep(0.2)
282-
return GetTaskResult(taskId=task_id, status="submitted", pollFrequency=100)
282+
return GetTaskResult(taskId=task_id, status="submitted", pollInterval=100)
283283

284284
mock_session.get_task.side_effect = slow_get_task
285285

@@ -319,7 +319,7 @@ async def never_completes():
319319
return sample_result
320320

321321
# Set up task polling to complete quickly
322-
mock_session.get_task.return_value = GetTaskResult(taskId="task-6", status="completed", pollFrequency=100)
322+
mock_session.get_task.return_value = GetTaskResult(taskId="task-6", status="completed", pollInterval=100)
323323
mock_session.get_task_result.return_value = sample_result
324324

325325
pending = PendingRequest(
@@ -420,7 +420,7 @@ async def slow_result_with_error():
420420
raise RuntimeError("Direct result also failed")
421421

422422
# Task polling succeeds but result retrieval fails
423-
mock_session.get_task.return_value = GetTaskResult(taskId="task-9", status="completed", pollFrequency=100)
423+
mock_session.get_task.return_value = GetTaskResult(taskId="task-9", status="completed", pollInterval=100)
424424
mock_session.get_task_result.side_effect = RuntimeError("Failed to retrieve result")
425425

426426
pending = PendingRequest(
@@ -454,7 +454,7 @@ async def never_completes():
454454
# Set up task polling to never complete
455455
async def never_complete_get_task(task_id: str):
456456
await asyncio.sleep(10)
457-
return GetTaskResult(taskId=task_id, status="submitted", pollFrequency=100)
457+
return GetTaskResult(taskId=task_id, status="submitted", pollInterval=100)
458458

459459
mock_session.get_task.side_effect = never_complete_get_task
460460

@@ -494,7 +494,7 @@ async def cancellable_get_task(task_id: str):
494494
nonlocal get_task_cancelled
495495
try:
496496
await asyncio.sleep(10) # Will be cancelled
497-
return GetTaskResult(taskId=task_id, status="submitted", pollFrequency=100)
497+
return GetTaskResult(taskId=task_id, status="submitted", pollInterval=100)
498498
except asyncio.CancelledError:
499499
get_task_cancelled = True
500500
raise
@@ -542,7 +542,7 @@ async def never_completes():
542542
await asyncio.Future() # Never completes
543543
return sample_result
544544

545-
mock_session.get_task.return_value = GetTaskResult(taskId="task-12", status="completed", pollFrequency=100)
545+
mock_session.get_task.return_value = GetTaskResult(taskId="task-12", status="completed", pollInterval=100)
546546
mock_session.get_task_result.return_value = sample_result
547547

548548
pending = PendingRequest(
@@ -572,8 +572,8 @@ async def never_completes():
572572
return sample_result
573573

574574
mock_session.get_task.side_effect = [
575-
GetTaskResult(taskId="task-13", status="submitted", pollFrequency=50),
576-
GetTaskResult(taskId="task-13", status="failed", pollFrequency=50, error="Something went wrong"),
575+
GetTaskResult(taskId="task-13", status="submitted", pollInterval=50),
576+
GetTaskResult(taskId="task-13", status="failed", pollInterval=50, error="Something went wrong"),
577577
]
578578
mock_session.get_task_result.return_value = sample_result
579579

@@ -604,8 +604,8 @@ async def never_completes():
604604
return sample_result
605605

606606
mock_session.get_task.side_effect = [
607-
GetTaskResult(taskId="task-14", status="working", pollFrequency=50),
608-
GetTaskResult(taskId="task-14", status="cancelled", pollFrequency=50, error="User cancelled"),
607+
GetTaskResult(taskId="task-14", status="working", pollInterval=50),
608+
GetTaskResult(taskId="task-14", status="cancelled", pollInterval=50, error="User cancelled"),
609609
]
610610
mock_session.get_task_result.return_value = sample_result
611611

tests/shared/test_task_store.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ async def test_create_task_basic(
4343
assert task.taskId == "test-task-123"
4444
assert task.status == "submitted"
4545
assert task.keepAlive == 5000
46-
assert task.pollFrequency == 500 # Default value
46+
assert task.pollInterval == 500 # Default value
4747

4848
@pytest.mark.anyio
4949
async def test_create_task_without_keep_alive(self, task_store: InMemoryTaskStore, sample_request: CallToolRequest):

0 commit comments

Comments
 (0)