Skip to main content
Glama

Add a knowledge source

cs_add_knowledge_source

Add a knowledge source to a Copilot Studio agent using one of four kinds: public-site, sharepoint, graph-connector, or files. Specify name, optional site or file paths, and other settings to make content searchable.

Instructions

Add knowledge as YAML: kind 'public-site' (Bing-scoped website, max 2 path levels), 'sharepoint' (direct folder URL), 'graph-connector' (Microsoft Graph connector via environment variable), or 'files' (copy documents into knowledge/files for upload on push). Dataverse, AI Search and SQL knowledge are portal-only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYes
nameYes
siteNo
filesNoAbsolute paths of documents (pdf, docx, txt, ...)
overwriteNo
workspaceNoPath to (or inside) the agent workspace. Defaults to CPS_WORKSPACE or the current directory.
descriptionNo
connectionNameNo
includeSubPagesNo
triggerConditionNoPower Fx condition restricting when this source is searched
contentSourceDisplayNameNo
connectionEnvironmentVariableNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.5

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses some behavioral nuances beyond a generic 'add' operation: for kind 'files' it states that documents are copied into knowledge/files for upload on a future push, and for 'graph-connector' it specifies using an environment variable. It does not mention permissions, reversibleness, logged side effects, or how the YAML is persisted/modified. Since annotations are empty, the description carries the full burden and only partially fulfills it, so a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently fronts the core action (Add knowledge as YAML) and packs specific constraints into a compact caveat. There is no repetition of schema content and every clause it joists against the actual parameter values (public-site, sharepoint, etc.). It is appropriately sized, holds zero filler, and places the most actionable information at the beginning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter tool with no annotations and no output schema, the description does not explain or prepare the agent for each parameter's purpose, the actual side effects of invocation, or any other prerequisites. It covers only the kind parameter semantics plus a few behavior notes, leaving the agent with significant unknowns (e.g., what 'site' expects, what 'overwrite' affects, how 'includeSubPages' works, when the YAML files are written, etc.). Therefore it falls short of the level of completeness needed for an agent to reliably invoke the tool in varied scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 25% of parameters described in the schema, the description helps to enrich the meaning of the 'kind' parameter (e.g., 'public-site' is a Bing-scoped website with max 2 path levels), which directly clarifies the enum keywords. However, it does not clarify or map many other parameters like 'site', 'overwrite', 'includeSubPages', 'contentSourceDisplayName', or 'connectionEnvironmentVariable', so the added meaning is concentrated on just one dimension and only partly compensates for the overall low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb (Add), resource (knowledge), and the format ('as YAML'), and differentiates from siblings like cs_edit_knowledge by defining it as an add operation. It also enumerates the four supported 'kind' values with specific constraints, making the tool's scope unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-not guidance by stating that Dataverse, AI Search, and SQL knowledge are portal-only and therefore cannot be used with this tool. It also gives usage constraints for each kind (e.g., 'max 2 path levels', 'via environment variable'), which clearly informs when this tool is appropriate. It does not name a specific alternative tool for editing existing knowledge sources, so a single 5 is not warranted, but the context is strong and includes an explicit exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools