web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Copilot Studio / MCP tool with nested a...
Copilot Studio
Suggested Answer

MCP tool with nested array-of-objects input is failling always

(0) ShareShare
ReportReport
Posted on by
 
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.
 
I have the same question (0)
  • Suggested answer
    Beyond The Platforms Profile Picture
    225 on at
    Hi there,
    What you’re seeing looks less like an MCP server validation issue and more like a Copilot Studio input-binding limitation.
     
    Based on the official Microsoft documentation, these MCP schema issues are currently known in Copilot Studio:
    - enum inputs are interpreted as strings, not enums. 
    - tool input schema can be truncated when a type is defined as an array of multiple types instead of a single type. 
    - reference type inputs/outputs are not supported. 
     
    So your schema is in a risky area: nested array-of-objects plus an inner enum field (`entries.type`).
     
    As for your specific questions:
     
    1. I couldn’t find any official statement that defines a supported nesting-depth limit for MCP tool inputs in Copilot Studio. However, Microsoft does document known schema limitations around enums, reference types, and some array/multi-type definitions. 
     
    2. I also couldn’t find official documentation for the exact error string `groups.entries.type is not a valid property`. But the current docs do not describe any MCP setting that forces Copilot Studio to pass a whole structured parameter “in one shot” instead of trying to gather nested fields. The MCP docs only describe server/tool-level configuration and tool selection. 
     
    3. I could not find any official per-input/per-parameter gathering configuration for MCP tools in Copilot Studio. The documented controls are at MCP server/tool level, including turning individual tools on/off. 
     
    Recommended fix based on the docs:
    - remove enum from the nested input schema and treat that field as string server-side; 
    - ensure every schema `type` is a single type only (avoid unions / multi-type arrays / nullable patterns if possible);
    - avoid reference types in tool inputs/outputs. 
     
    Practical workaround (not explicitly documented by Microsoft, but likely the safest design):
    pass the entire nested structure as a single top-level JSON string input (for example `payloadJson`) and let the MCP server parse/validate it, instead of asking Copilot Studio to bind nested array fields individually.
     
    Hope this helps!
    Paolo


    Did this solve your issue? → Accept as Solution
    👍 Partially helpful? → Click "Yes" on "Was this reply helpful?" or drop a Like!


    Want more tips on Power Platform & AI? Follow me here:

    🔗 LinkedIn: https://www.linkedin.com/in/paoloasnaghi/
    ▶️ YouTube: https://www.youtube.com/@BeyondThePlatforms
    📸 Instagram: https://www.instagram.com/beyond_the_platforms/
    🌐 Website: https://www.beyondtheplatforms.com/


     
  • Suggested answer
    Sayali-MSFT Profile Picture
    Microsoft Employee on at
    Hello ,
    Q1. Is nested array-of-objects input supported?

    Not explicitly documented as unsupported, but complex nested arrays aren’t reliably handled by Copilot Studio MCP orchestration, especially for input gathering.
     

    Q2. Is groups.entries.type is not a valid property expected?

    Yes — it occurs because Copilot Studio can’t properly bind/slot-fill fields inside nested arrays, so it fails on inner properties like entries[].type.

     

    Q3. Can we force full structured input (no step-by-step prompting)?

    No — there’s no per-input configuration for MCP tools; the orchestrator decides how to gather inputs and may still try slot-filling.

    Recommended approach:


       
    • Avoid deep nested array inputs for MCP tools

    • Flatten the schema or pass the full structured payload in one shot

    • Use string instead of enum for nested fields and validate server‑side

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Launch!

Jump in, show your community spirit, and win prizes!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the May Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Copilot Studio

#1
Valantis Profile Picture

Valantis 249

#2
Romain The Low-Code Bearded Bear Profile Picture

Romain The Low-Code... 180 Super User 2026 Season 1

#3
Vish WR Profile Picture

Vish WR 153

Last 30 days Overall leaderboard