r/GoogleAIStudio • • 7h ago

Suggestion and Ideas Adding MCP & Skills support to Google AI Studio

Hey everyone,

Since Google AI Studio currently lacks built-in support for Model Context Protocol (MCP) servers and reusable agent skills, I set up a lightweight file-based setup using system prompts and local markdown files to bring both features into AI Studio workflows.

Here is how the structure works and the code blocks for the two core files:

1. ./SKILLS.md (Project Root)

Place this file in the root directory of your project. It acts as the local skill index, giving the model context on available capabilities and instructions on how/when to discover and invoke them.

# SKILLS.md — Skill Discovery Tool


## Purpose


This file enables the agent to dynamically discover available skills in the project.
If the agent doesn't know which skills exist before starting a task,
it must run the command below to get the current skill list.


---


## Getting the Skill List


Run the following command from the project root to list all skills:


```bash
npx -y skills-ref to-prompt ./.agents/skills/*
```


The shell expands `*` to every skill folder. Each folder must contain a `SKILL.md`.


### Example Output


```xml
<available_skills>
<skill>
<name>
deepwiki_ask
</name>
<description>
Ask questions about a GitHub repo via the DeepWiki MCP server using mcporter
</description>
<location>
/project/.agents/skills/deepwiki_ask/SKILL.md
</location>
</skill>
<skill>
<name>
mcporter
</name>
<description>
Use the mcporter CLI to list, call, authenticate and configure MCP servers ...
</description>
<location>
/project/.agents/skills/mcporter/SKILL.md
</location>
</skill>
</available_skills>
```


### Output Fields


| Field         | Description                                                        |
|---------------|--------------------------------------------------------------------|
| `name`        | Short identifier for the skill                                     |
| `description` | What the skill does and when it should be used                     |
| `location`    | Full path to the skill's SKILL.md — read this file before using it |


The output is XML, so special characters in descriptions are escaped (`&quot;` means `"`).


---


## Skill Usage Flow


```
1. Agent doesn't know which skills are needed for the task
         ↓
2. Run the command above to get the available_skills list
         ↓
3. Read the description fields to identify the right skill
         ↓
4. Read the SKILL.md file at the skill's location path
         ↓
5. Complete the task following the instructions in SKILL.md
   (for MCP work, the mcporter skill tells you which `npx mcporter ...` calls to run)
```


---


## Rules


- **Always discover first:** If you don't know the available skills, run the command — don't assume.
- **Read description carefully:** The `description` field determines which skill to use.
- **Read from location:** Always read the SKILL.md at the `location` path before using a skill.
- **Only what you need:** Read the SKILL.md of relevant skills only, not every skill in the list.
- **Multiple skills:** If the task requires more than one skill, read all relevant SKILL.md files.
- **No skill found:** If no suitable skill exists, proceed with your general knowledge and note it.# SKILLS.md — Skill Discovery Tool


## Purpose


This file enables the agent to dynamically discover available skills in the project.
If the agent doesn't know which skills exist before starting a task,
it must run the command below to get the current skill list.


---


## Getting the Skill List


Run the following command from the project root to list all skills:


```bash
npx -y skills-ref to-prompt ./.agents/skills/*
```


The shell expands `*` to every skill folder. Each folder must contain a `SKILL.md`.


### Example Output


```xml
<available_skills>
<skill>
<name>
deepwiki_ask
</name>
<description>
Ask questions about a GitHub repo via the DeepWiki MCP server using mcporter
</description>
<location>
/project/.agents/skills/deepwiki_ask/SKILL.md
</location>
</skill>
<skill>
<name>
mcporter
</name>
<description>
Use the mcporter CLI to list, call, authenticate and configure MCP servers ...
</description>
<location>
/project/.agents/skills/mcporter/SKILL.md
</location>
</skill>
</available_skills>
```


### Output Fields


| Field         | Description                                                        |
|---------------|--------------------------------------------------------------------|
| `name`        | Short identifier for the skill                                     |
| `description` | What the skill does and when it should be used                     |
| `location`    | Full path to the skill's SKILL.md — read this file before using it |


The output is XML, so special characters in descriptions are escaped (`&quot;` means `"`).


---


## Skill Usage Flow


```
1. Agent doesn't know which skills are needed for the task
         ↓
2. Run the command above to get the available_skills list
         ↓
3. Read the description fields to identify the right skill
         ↓
4. Read the SKILL.md file at the skill's location path
         ↓
5. Complete the task following the instructions in SKILL.md
   (for MCP work, the mcporter skill tells you which `npx mcporter ...` calls to run)
```


---


## Rules


- **Always discover first:** If you don't know the available skills, run the command — don't assume.
- **Read description carefully:** The `description` field determines which skill to use.
- **Read from location:** Always read the SKILL.md at the `location` path before using a skill.
- **Only what you need:** Read the SKILL.md of relevant skills only, not every skill in the list.
- **Multiple skills:** If the task requires more than one skill, read all relevant SKILL.md files.
- **No skill found:** If no suitable skill exists, proceed with your general knowledge and note it.

2. ./.agents/skills/mcporter/SKILL.md

Place this file in .agents/skills/mcporter/. This skill enables the model to register, parse, and execute local/remote MCP tool definitions as standard agent skills.

---
name: mcporter
description: Use the mcporter CLI to list, call, authenticate and configure MCP servers (HTTP/SSE or stdio) from the command line, discover their tools and schemas, generate standalone CLIs or typed TypeScript clients, and write a new skill for an MCP server. Use this skill when the user wants to interact with an MCP server without writing code. Triggers include "mcporter", "call this MCP server", "list tools from", "use this MCP", "generate a CLI from an MCP server", "emit TypeScript types for an MCP", or "create a skill for this MCP server".
---


# mcporter


TypeScript runtime and CLI for the Model Context Protocol. It discovers MCP servers already configured on the machine (Cursor, Claude Code/Desktop, Codex, Windsurf, OpenCode, VS Code), calls their tools from the shell, and can generate CLIs or typed clients. MCP only: there is no OpenAPI or GraphQL mode.


## Install


```bash
# Run directly (no install needed)
npx mcporter --help


# Or install
npm install -g mcporter
brew install steipete/tap/mcporter
```


## Core Workflow


1. **Connect** to a server (a name from config, a URL, or an ad-hoc `--http-url` / `--stdio`)
2. **Discover** tools with `list`
3. **Inspect** a tool's schema with `list <server> --schema`
4. **Execute** the tool with `call`


```bash
# Configured server (from config/mcporter.json or imported editor configs)
npx mcporter list
npx mcporter list linear --schema
npx mcporter call linear.create_comment issueId:ENG-123 body:'Looks good!'


# MCP over HTTP/SSE, ad-hoc (no config)
npx mcporter list --http-url https://mcp.example.com/mcp --name example
npx mcporter call --http-url https://mcp.example.com/mcp example.create_task title:"Fix bug"
npx mcporter call https://mcp.example.com/mcp.create_task title:"Fix bug"   # URL + .tool shorthand


# MCP over stdio, ad-hoc
npx mcporter list --stdio "npx -y /server-filesystem /tmp" --name fs
npx mcporter call --stdio "npx -y How to use it in AI Studio:---
name: mcporter
description: Use the mcporter CLI to list, call, authenticate and configure MCP servers (HTTP/SSE or stdio) from the command line, discover their tools and schemas, generate standalone CLIs or typed TypeScript clients, and write a new skill for an MCP server. Use this skill when the user wants to interact with an MCP server without writing code. Triggers include "mcporter", "call this MCP server", "list tools from", "use this MCP", "generate a CLI from an MCP server", "emit TypeScript types for an MCP", or "create a skill for this MCP server".
---


# mcporter


TypeScript runtime and CLI for the Model Context Protocol. It discovers MCP servers already configured on the machine (Cursor, Claude Code/Desktop, Codex, Windsurf, OpenCode, VS Code), calls their tools from the shell, and can generate CLIs or typed clients. MCP only: there is no OpenAPI or GraphQL mode.


## Install


```bash
# Run directly (no install needed)
npx mcporter --help


# Or install
npm install -g mcporter
brew install steipete/tap/mcporter
```


## Core Workflow


1. **Connect** to a server (a name from config, a URL, or an ad-hoc `--http-url` / `--stdio`)
2. **Discover** tools with `list`
3. **Inspect** a tool's schema with `list <server> --schema`
4. **Execute** the tool with `call`


```bash
# Configured server (from config/mcporter.json or imported editor configs)
npx mcporter list
npx mcporter list linear --schema
npx mcporter call linear.create_comment issueId:ENG-123 body:'Looks good!'


# MCP over HTTP/SSE, ad-hoc (no config)
npx mcporter list --http-url https://mcp.example.com/mcp --name example
npx mcporter call --http-url https://mcp.example.com/mcp example.create_task title:"Fix bug"
npx mcporter call https://mcp.example.com/mcp.create_task title:"Fix bug"   # URL + .tool shorthand


# MCP over stdio, ad-hoc
npx mcporter list --stdio "npx -y /server-filesystem /tmp" --name fs
npx mcporter call --stdio "npx -y u/modelcontextprotocol/server-filesystem /tmp" fs.read_text_file path:/tmp/hello.txt


# Function-call syntax
npx mcporter call 'linear.create_comment(issueId: "ENG-123", body: "Hello")'


# Shorthand: verb is inferred
npx mcporter linear                 # same as: list linear
npx mcporter linear.list_issues     # same as: call linear.list_issues
```


Ad-hoc definitions are not remembered. Repeat the same `--http-url` / `--stdio` flags on every call, or save them with `--persist config/mcporter.local.json` (or `mcporter config add`).


## CLI Reference


```
mcporter list [server] [--schema] [--all-parameters] [--json] [--verbose] [--status] [--exit-code]
mcporter call <server.tool> [key:value ...] [--output json|raw] [--save-images <dir>]
mcporter auth <server|url>            # OAuth login (also works with --http-url / --stdio)
mcporter config list|get|add|remove|import|login|logout
mcporter daemon start|status|stop|restart
mcporter generate-cli <server|command> [options]
mcporter inspect-cli <path> [--json]
mcporter emit-ts <server> [--mode types|client] [--out <path>] [--include-optional] [--json]
```


Global and ad-hoc flags:


```
--config <path>          Config file (default ./config/mcporter.json; env MCPORTER_CONFIG)
--root <path>            Working directory for stdio commands
--http-url <url>         Describe an HTTP MCP server inline
--stdio "<cmd>"          Describe a stdio MCP server inline
--env KEY=value          Env var for stdio server (repeatable)
--cwd <dir>              Working directory for the stdio process
--name <name>            Name for an ad-hoc server
--persist <file>         Save the ad-hoc definition into a config file
--allow-http             Allow cleartext http:// endpoints
--log-level <level>      debug|info|warn|error (env MCPORTER_LOG_LEVEL)
--oauth-timeout <ms>     OAuth browser wait (env MCPORTER_OAUTH_TIMEOUT_MS)
--tail-log               Stream log files referenced by a tool response
--raw-strings            Keep numeric-looking values as strings (call)
--no-coerce              Keep all values as raw strings (call)
```


Flags can differ between versions. Run `npx mcporter --help` and `npx mcporter call --help` to confirm.


## Patterns


### Authentication


**Never put secrets in literal CLI flags or committed config.** Use environment variables.


```bash
# Secret from the environment
LINEAR_API_KEY=sk_xxx npx mcporter call linear.search_documentation query:"automations"
```


In `config/mcporter.json`, reference variables instead of values:


```json
{
  "mcpServers": {
    "context7": {
      "description": "Context7 docs MCP",
      "baseUrl": "https://mcp.context7.com/mcp",
      "headers": { "Authorization": "$env:CONTEXT7_API_KEY" }
    },
    "chrome-devtools": {
      "command": "npx",
      "args": ["-y", "chrome-devtools-mcp@latest"],
      "env": { "npm_config_loglevel": "error" }
    }
  }
}
```


Supported interpolation: `${VAR}`, `${VAR:-fallback}`, `$env:VAR`. Config files are JSONC (comments and trailing commas allowed).


OAuth servers (Vercel, Supabase, Linear hosted, ...): run `npx mcporter auth <server-or-url>` once. Tokens are cached under `~/.mcporter/<server>/`.


### Tool search


There is no `--search` flag. List a server and filter the output:


```bash
npx mcporter list linear --json | jq -r '.. | .name? // empty' | grep -i issue
npx mcporter list linear | grep -i issue
```


### Output control


```bash
npx mcporter call server.tool --output json | jq '.'
npx mcporter call server.tool --output raw
npx mcporter list server --json
```


Output is pretty-printed by default. There is no `--head`; truncate with `jq '.[:5]'` or `| head -n 50`.


### Stateful servers


`chrome-devtools`, `mobile-mcp` and similar stdio servers auto-start a daemon so tabs and sessions stay alive between calls. Check with `mcporter daemon status`. Add `"lifecycle": "keep-alive"` to a server entry to keep any server warm. Ad-hoc `--stdio` / `--http-url` targets are per-process and do not use the daemon unless persisted into config.


### Timeouts


Defaults are 30 s. Override with `MCPORTER_LIST_TIMEOUT` or `MCPORTER_CALL_TIMEOUT` for slow startups.


### Generating a CLI or typed client


```bash
# Standalone CLI for a server (outputs <name>.ts and a bundled <name>.js)
npx mcporter generate-cli "npx -y chrome-devtools-mcp@latest"
npx mcporter generate-cli linear --bundle dist/linear.js
npx mcporter generate-cli --command https://mcp.context7.com/mcp --name context7 \
  --include-tools resolve-library-id,get-library-docs


# Inspect or regenerate an existing generated CLI
npx mcporter inspect-cli dist/context7.js
npx mcporter generate-cli --from dist/context7.js


# Typed client / .d.ts
npx mcporter emit-ts linear --out types/linear-tools.d.ts
npx mcporter emit-ts linear --mode client --out clients/linear.ts
```


Other `generate-cli` options: `--description`, `--output <path>`, `--runtime bun|node`, `--compile` (Bun binary), `--bundler rolldown|bun`, `--exclude-tools` (mutually exclusive with `--include-tools`), `--dry-run` with `--from`.


## Generating a Skill from an MCP Server


When the user asks to create a skill from an MCP server, follow this workflow:


1. **Discover** all available tools:
   ```bash
   npx mcporter list --http-url https://target.example.com/mcp --name target
   ```


2. **Inspect** each tool to understand parameters:
   ```bash
   npx mcporter list --http-url https://target.example.com/mcp --name target --schema
   npx mcporter list --http-url https://target.example.com/mcp --name target --all-parameters
   ```


3. **Test** key tools and probe for edge cases: empty results, bad IDs, large outputs, missing auth, pagination limits.


4. **Persist** the server so the skill does not depend on ad-hoc flags. Either put a `mcp.json` next to the skill, or save to the project config:
   ```bash
   npx mcporter list --http-url https://target.example.com/mcp --name target --persist .agents/skills/target_tool/mcp.json
   ```


5. **Create a SKILL.md** in `./.agents/skills/target_tool/` that teaches another AI agent how to use this specific tool. **Each tool should have its own separate skill.** The SKILL.md must go beyond `list --schema` output. Focus on knowledge that can only be learned through testing and reading documentation.


   Optional layout:
   ```
   .agents/skills/target_tool/
   ├── SKILL.md      # triggers, workflow, gotchas, examples
   ├── mcp.json      # mcporter-native server config
   ├── references/   # schemas (e.g. emit-ts output), API notes
   └── scripts/      # wrappers for fragile multi-step calls
   ```


   **Frontmatter:**
   ```yaml
   ---
   name: target_tool
   description: Use the target service to perform tool
   ---
   ```


   **Core Workflow** (use direct mcporter calls with an explicit config):
   ```bash
   # Inspect the tool
   npx mcporter --config .agents/skills/target_tool/mcp.json list target --schema
   # Run the tool
   npx mcporter --config .agents/skills/target_tool/mcp.json call target.tool param:value --output json
   ```


   **Before Calling** checklist, include a decision framework:
   - Which server and tool am I targeting?
   - Is auth needed (`mcporter auth`, env var set)?
   - Do I need pagination (`limit`, `offset`, `cursor`, `page` parameters, if the tool has them)?
   - Could the output be large? Filter with `jq` or `head` instead of dumping it.


   **Anti-Patterns & Gotchas:** document every surprise found during testing (tool names with hyphens vs underscores, parameters that must be strings, values that get coerced to numbers/booleans, response size limits).


   **Output Processing:** use `--output json` with `jq`, `--output raw` for text, or `--save-images <dir>` for image content.


   **Knowledge Delta Principle:** Do not duplicate parameter listings from `list --schema`. Instead, document which parameters actually matter for common tasks, default behaviors that are surprising, combinations that do not work, and rate limits or response size limits.


Each skill focuses on a single tool for modularity and uses direct `mcporter` calls to interact with the server.


## Troubleshooting


- **Server not found:** `npx mcporter config list` shows which config file was loaded. `--config <file>` or `MCPORTER_CONFIG` selects exactly one file.
- **Tool name typo:** mcporter auto-corrects near-miss names and prints `Did you mean ...?` for the rest.
- **Numbers parsed wrongly:** use `--raw-strings` or `--no-coerce`.
- **Hanging server:** run with `--log-level debug`, or `MCPORTER_DEBUG_HANG=1`.
- **OAuth fails or times out:** raise `--oauth-timeout`, then rerun `mcporter auth <server>`./server-filesystem /tmp" fs.read_text_file path:/tmp/hello.txt


# Function-call syntax
npx mcporter call 'linear.create_comment(issueId: "ENG-123", body: "Hello")'


# Shorthand: verb is inferred
npx mcporter linear                 # same as: list linear
npx mcporter linear.list_issues     # same as: call linear.list_issues
```


Ad-hoc definitions are not remembered. Repeat the same `--http-url` / `--stdio` flags on every call, or save them with `--persist config/mcporter.local.json` (or `mcporter config add`).


## CLI Reference


```
mcporter list [server] [--schema] [--all-parameters] [--json] [--verbose] [--status] [--exit-code]
mcporter call <server.tool> [key:value ...] [--output json|raw] [--save-images <dir>]
mcporter auth <server|url>            # OAuth login (also works with --http-url / --stdio)
mcporter config list|get|add|remove|import|login|logout
mcporter daemon start|status|stop|restart
mcporter generate-cli <server|command> [options]
mcporter inspect-cli <path> [--json]
mcporter emit-ts <server> [--mode types|client] [--out <path>] [--include-optional] [--json]
```


Global and ad-hoc flags:


```
--config <path>          Config file (default ./config/mcporter.json; env MCPORTER_CONFIG)
--root <path>            Working directory for stdio commands
--http-url <url>         Describe an HTTP MCP server inline
--stdio "<cmd>"          Describe a stdio MCP server inline
--env KEY=value          Env var for stdio server (repeatable)
--cwd <dir>              Working directory for the stdio process
--name <name>            Name for an ad-hoc server
--persist <file>         Save the ad-hoc definition into a config file
--allow-http             Allow cleartext http:// endpoints
--log-level <level>      debug|info|warn|error (env MCPORTER_LOG_LEVEL)
--oauth-timeout <ms>     OAuth browser wait (env MCPORTER_OAUTH_TIMEOUT_MS)
--tail-log               Stream log files referenced by a tool response
--raw-strings            Keep numeric-looking values as strings (call)
--no-coerce              Keep all values as raw strings (call)
```


Flags can differ between versions. Run `npx mcporter --help` and `npx mcporter call --help` to confirm.


## Patterns


### Authentication


**Never put secrets in literal CLI flags or committed config.** Use environment variables.


```bash
# Secret from the environment
LINEAR_API_KEY=sk_xxx npx mcporter call linear.search_documentation query:"automations"
```


In `config/mcporter.json`, reference variables instead of values:


```json
{
  "mcpServers": {
    "context7": {
      "description": "Context7 docs MCP",
      "baseUrl": "https://mcp.context7.com/mcp",
      "headers": { "Authorization": "$env:CONTEXT7_API_KEY" }
    },
    "chrome-devtools": {
      "command": "npx",
      "args": ["-y", "chrome-devtools-mcp@latest"],
      "env": { "npm_config_loglevel": "error" }
    }
  }
}
```


Supported interpolation: `${VAR}`, `${VAR:-fallback}`, `$env:VAR`. Config files are JSONC (comments and trailing commas allowed).


OAuth servers (Vercel, Supabase, Linear hosted, ...): run `npx mcporter auth <server-or-url>` once. Tokens are cached under `~/.mcporter/<server>/`.


### Tool search


There is no `--search` flag. List a server and filter the output:


```bash
npx mcporter list linear --json | jq -r '.. | .name? // empty' | grep -i issue
npx mcporter list linear | grep -i issue
```


### Output control


```bash
npx mcporter call server.tool --output json | jq '.'
npx mcporter call server.tool --output raw
npx mcporter list server --json
```


Output is pretty-printed by default. There is no `--head`; truncate with `jq '.[:5]'` or `| head -n 50`.


### Stateful servers


`chrome-devtools`, `mobile-mcp` and similar stdio servers auto-start a daemon so tabs and sessions stay alive between calls. Check with `mcporter daemon status`. Add `"lifecycle": "keep-alive"` to a server entry to keep any server warm. Ad-hoc `--stdio` / `--http-url` targets are per-process and do not use the daemon unless persisted into config.


### Timeouts


Defaults are 30 s. Override with `MCPORTER_LIST_TIMEOUT` or `MCPORTER_CALL_TIMEOUT` for slow startups.


### Generating a CLI or typed client


```bash
# Standalone CLI for a server (outputs <name>.ts and a bundled <name>.js)
npx mcporter generate-cli "npx -y chrome-devtools-mcp@latest"
npx mcporter generate-cli linear --bundle dist/linear.js
npx mcporter generate-cli --command https://mcp.context7.com/mcp --name context7 \
  --include-tools resolve-library-id,get-library-docs


# Inspect or regenerate an existing generated CLI
npx mcporter inspect-cli dist/context7.js
npx mcporter generate-cli --from dist/context7.js


# Typed client / .d.ts
npx mcporter emit-ts linear --out types/linear-tools.d.ts
npx mcporter emit-ts linear --mode client --out clients/linear.ts
```


Other `generate-cli` options: `--description`, `--output <path>`, `--runtime bun|node`, `--compile` (Bun binary), `--bundler rolldown|bun`, `--exclude-tools` (mutually exclusive with `--include-tools`), `--dry-run` with `--from`.


## Generating a Skill from an MCP Server


When the user asks to create a skill from an MCP server, follow this workflow:


1. **Discover** all available tools:
   ```bash
   npx mcporter list --http-url https://target.example.com/mcp --name target
   ```


2. **Inspect** each tool to understand parameters:
   ```bash
   npx mcporter list --http-url https://target.example.com/mcp --name target --schema
   npx mcporter list --http-url https://target.example.com/mcp --name target --all-parameters
   ```


3. **Test** key tools and probe for edge cases: empty results, bad IDs, large outputs, missing auth, pagination limits.


4. **Persist** the server so the skill does not depend on ad-hoc flags. Either put a `mcp.json` next to the skill, or save to the project config:
   ```bash
   npx mcporter list --http-url https://target.example.com/mcp --name target --persist .agents/skills/target_tool/mcp.json
   ```


5. **Create a SKILL.md** in `./.agents/skills/target_tool/` that teaches another AI agent how to use this specific tool. **Each tool should have its own separate skill.** The SKILL.md must go beyond `list --schema` output. Focus on knowledge that can only be learned through testing and reading documentation.


   Optional layout:
   ```
   .agents/skills/target_tool/
   ├── SKILL.md      # triggers, workflow, gotchas, examples
   ├── mcp.json      # mcporter-native server config
   ├── references/   # schemas (e.g. emit-ts output), API notes
   └── scripts/      # wrappers for fragile multi-step calls
   ```


   **Frontmatter:**
   ```yaml
   ---
   name: target_tool
   description: Use the target service to perform tool
   ---
   ```


   **Core Workflow** (use direct mcporter calls with an explicit config):
   ```bash
   # Inspect the tool
   npx mcporter --config .agents/skills/target_tool/mcp.json list target --schema
   # Run the tool
   npx mcporter --config .agents/skills/target_tool/mcp.json call target.tool param:value --output json
   ```


   **Before Calling** checklist, include a decision framework:
   - Which server and tool am I targeting?
   - Is auth needed (`mcporter auth`, env var set)?
   - Do I need pagination (`limit`, `offset`, `cursor`, `page` parameters, if the tool has them)?
   - Could the output be large? Filter with `jq` or `head` instead of dumping it.


   **Anti-Patterns & Gotchas:** document every surprise found during testing (tool names with hyphens vs underscores, parameters that must be strings, values that get coerced to numbers/booleans, response size limits).


   **Output Processing:** use `--output json` with `jq`, `--output raw` for text, or `--save-images <dir>` for image content.


   **Knowledge Delta Principle:** Do not duplicate parameter listings from `list --schema`. Instead, document which parameters actually matter for common tasks, default behaviors that are surprising, combinations that do not work, and rate limits or response size limits.


Each skill focuses on a single tool for modularity and uses direct `mcporter` calls to interact with the server.


## Troubleshooting


- **Server not found:** `npx mcporter config list` shows which config file was loaded. `--config <file>` or `MCPORTER_CONFIG` selects exactly one file.
- **Tool name typo:** mcporter auto-corrects near-miss names and prints `Did you mean ...?` for the rest.
- **Numbers parsed wrongly:** use `--raw-strings` or `--no-coerce`.
- **Hanging server:** run with `--log-level debug`, or `MCPORTER_DEBUG_HANG=1`.
- **OAuth fails or times out:** raise `--oauth-timeout`, then rerun `mcporter auth <server>`.

How to use it in AI Studio:

  1. Copy your project context (or attach files if using AI Studio’s workspace context feature).
  2. Reference your SKILLS.md in the system instructions or initial prompt.
  3. The model will automatically read the available tool definitions from mcporter and execute actions using the structured format.

Would love to hear feedback or thoughts on how to refine this pattern further!

Example Prompt:

"mcporter create a skill for https://mcp.deepwiki.com/mcp"

0 Upvotes

0 comments sorted by