Skip to content

bug: mock MCP tool names have drifted from real M365 MCP server contracts #300

@pratapladhani

Description

@pratapladhani

Problem

The mock tool definitions in mocks/*.json no longer match the tool catalogs
exposed by the real M365 MCP servers. Agents developed and tested against the
mocks will encounter tool-not-found or schema-mismatch errors when switched to
a real M365 environment.

There is currently no mechanism to detect or prevent this drift.

Evidence

The following mismatches were found by querying the real M365 MCP server endpoints
directly via the tools/list JSON-RPC method:

mcp_CalendarTools

  • All 9 tool names use camelCase in the mock but PascalCase on the real server
    (e.g., createEventCreateEvent, deleteEventDeleteEventById)
  • 3 tools in the mock do not exist on the real server: getEvent, getOrganization, getSchedule
  • 4 tools on the real server are missing from the mock: TentativelyAcceptEvent,
    ForwardEvent, GetUserDateAndTimeZoneSettings, GetRooms

mcp_MeServer

  • All 5 tool names are wrong (e.g., getMyProfileGetMyDetails,
    listUsersGetMultipleUsersDetails, getUserGetUserDetails)

mcp_MailTools

  • All 20 tool names carry an incorrect Async suffix
    (e.g., SendEmailWithAttachmentsAsync instead of SendEmailWithAttachments)
  • The tool FlagEmail is missing entirely

mcp_KnowledgeTools

  • The file contains 3 disabled placeholder entries with invented names.
    The real server exposes 5 enabled tools with snake_case names.

Impact

Any agent that relies on tool names as registered with the mock will silently
break when pointed at the real M365 environment. This makes local mock-based
development unreliable as a proxy for real behavior.

Expected behavior

Mock tool names, casing, and required input parameters should exactly match
what the real M365 MCP servers expose, and there should be a way to verify
and maintain that alignment over time.

Metadata

Metadata

Labels

P1Very high prioritybugSomething isn't workingescalatedIssue has breached SLA and been escalated

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions