Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,845 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Meraki.Api

Nuget Nuget License: MIT Codacy Badge

This project implements access to the v1 Meraki API

See the contribution guide for more information regarding contributing to this project.

Library documentation

Full documentation is available here including:

  • how to use the library
  • all methods and properties

MCP server support

In addition to the REST client, this package can act as a client for the Cisco Meraki MCP server, letting an agent you build search the Meraki Dashboard API capability catalogue in natural language and execute the capability it selects.

The MCP types target net10.0 only. The netstandard2.0 target is unchanged.

using Meraki.Api.Mcp;

// The Cisco-hosted server (the default).
await using var client = new MerakiMcpClient(new MerakiMcpClientOptions
{
    ApiKey = merakiDashboardApiKey
});

var capabilities = await client.SemanticSearchAsync("which clients are on this network?");

var result = await client.ExecuteApiAsync(
    capabilities[0].CapabilityId,
    new Dictionary<string, object?> { ["networkId"] = "N_123" });

// The server wraps results in an envelope. Payload is the "data" element alone, which
// matches the shape the equivalent MerakiClient call returns. Deserialize<T>() uses it.
Console.WriteLine(result.Payload);
var clients = result.Deserialize<List<Client>>();

A self-hosted instance of the open-source server over HTTP:

await using var client = new MerakiMcpClient(new MerakiMcpClientOptions
{
    Transport = MerakiMcpTransport.LocalHttp,
    Uri = "http://localhost:8080/mcp",
    ApiKey = merakiDashboardApiKey,
    ApiRegion = ApiRegion.Government
});

Or launched as a child process over stdio:

var options = new MerakiMcpClientOptions
{
    Transport = MerakiMcpTransport.Stdio,
    Command = "npx",
    ApiKey = merakiDashboardApiKey
};
options.Arguments.Add("cisco-meraki-mcp-official");

await using var client = new MerakiMcpClient(options);

Use GetStatusAsync() for a non-destructive connectivity and credential check.

Two things observed against the live hosted server that are worth knowing:

  • MerakiCapability.Score is currently always null — the beta server returns no relevance score, so the ranking is the list order alone. Do not filter on a score threshold.
  • The server reports some failures, such as a capability called without its required parameters, in the payload of an otherwise successful tool result. Both operations detect that and throw MerakiMcpProtocolException including the server's recovery suggestion, so if a call returns, you have data rather than an error document.

Limitations

These come from Cisco's own documentation, and are worth reading before you design around the server:

  • The server is in beta, and Cisco documents that breaking changes are possible.
  • Operations are read-only. execute_api cannot mutate anything. Use MerakiClient for writes; ExecuteApiAsync refuses non-read capabilities rather than letting you discover this at runtime.
  • Authentication is by API key only. OAuth is not yet supported.
  • The hosted server supports Meraki.com environments only — not Federal, GovCloud, or localised instances. Those require a self-hosted server, so MerakiMcpTransport.HostedHttp rejects a non-default ApiRegion.
  • Six static egress IP addresses may require allowlisting for the hosted server. They are listed on MerakiMcpTransportException.HostedEgressIpAddresses, and named in the exception message when a connection times out.
  • Rate limits are shared. The server respects the Dashboard limit of 10 requests per second per organization, and that budget is shared with any MerakiClient traffic in the same process.

API Documentation

The Meraki API documentation can be found here:

Testing

You can test this using a Meraki Sandbox here:

After signing in, look in the lower left hand side of the page for your API key.

About

Meraki Api Nuget Package

Resources

Contributing

Security policy

Stars

18 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages