Hi all,
I'm connecting a Copilot Studio agent to an external MCP server (via Copilot Studio's native MCP support, generative orchestration enabled). One of the tools, create_collection, takes a nested input and I'm hitting an error I can't get past.
The tool's input schema (relevant part):
The tool has a required groups parameter that is an array of objects, where each object also contains an array of objects:
groups : array of group objects
group object : { title: string, description: string, entries: array }
entries : array of entry objects
entry object: { type: enum["X","Y","Z"], objectId: integer }
So the structure is an array of objects, each containing another array of objects, and the inner object has an enum field (type).
What happens in the conversation:
1. User: "Create something that includes both X and Y items"
2. Agent: "What type of entry would you l
3. User: "X and Y"
4. Agent: groups.entries.type is not a valid property. - then it re-asks the same question and loops, OR sometimes it gives "Sorry, something went wrong. Error code: SystemError. Conversation ID: 123..." error.
What I've confirmed:
- The underlying model does correctly buildups when I inspect its reasoning/output —a well-formed array matching the schema, with correct enum values. Example of what it produced:
[
{
"title": "Group 1",
"description": "...",
"entries": [ { "type": "X", "objectId": 1001 } ]
},
{
"title": "Group 2",
"description": "...",
"entries": [
{ "type": "Y", "objectId": 2002 },
{ "type": "Y", "objectId": 2003 }
]
}
]
- So the model understands the schema; the failure appears to occur in Copilot Studio when it tries to
gather/bind the type field that lives ins → entries → type). The error stringgroups.entries.type is not a valid property is generated by Copilot Studio, not by my MCP server (my server only emits standard JSON-Schema validation / deserialization errors).
- I also noticed the MCP troubleshooting doc mentions that enum-type inputs are interpreted as strings, and that there are known issues with certain array/multi-type schemas. My inner type field is an enum, so I'm wondering if either of these is related.
Questions:
1. Is an input shaped as an array of objects that itself contains an array of objects supported for MCP tools in
Copilot Studio? If there's a documented limit on input-schema nesting depth or on arrays-of-objects, I'd
appreciate a pointer.
2. Is the groups.entries.type is not a valid property error expected when Copilot Studio tries to slot-fill /
prompt for a field nested inside arrays? Is there a way to make it pass the whole structured value to the tool
in one shot instead of prompting for nested fields individually?
3. Is there any per-input configuration for MCP tools to control how a parameter is gathered (model-populated
vs. asking the user)? I only see the connection/tool-selection node in the agent's YAML
(InvokeExternalAgentTaskAction / ModelContextProtocolMetadata) and no per-input settings for MCP tools.
Environment: Copilot Studio, native MCP integration, generative orchestration on. Happy to share more of the schema or transcript.