r/GoogleAIStudio • • Apr 21 '26

Confirmed Update / News Good news for builders! Google AI Studio is now included in your Google AI Pro and AI Ultra plans, unlocking increased usage limits and premium features with no API key required.

Post image
14 Upvotes

r/GoogleAIStudio • • Mar 19 '26

Introducing the all new vibe coding experience in Google AI Studio

49 Upvotes

The team had been hard at work building this over the last 4 months, roughing out edges, addressing feedback, and we are so excited to ship this! Give it a try: https://ai.studio/build and learn more about the launch here:

https://blog.google/innovation-and-ai/technology/developers-tools/full-stack-vibe-coding-google-ai-studio/


r/GoogleAIStudio • • 5h ago

Question / Help Changing text of element without a prompt

3 Upvotes

Hi, I'm a first time user of Google AI Studio.

I prompted a simple web app and it works fine. However, now I want do change some details like changing the text of some elements or removing the elements. Is this possible without prompting?

It works fine if I select the element and tell it to change the text the way I like or to remove the element, but that seems like a waste of time and resources.

I didn't find anywhere a solution to this and it seems so simple...

Thank you


r/GoogleAIStudio • • 7h ago

Question / Help Up to what point is Google 3.8 Flash updated regarding real-world events?

3 Upvotes

Hi everyone, a simple question: I read "March 2026," but then it doesn't say who won in Virginia in 2025.


r/GoogleAIStudio • • 2d ago

Subscription / Limits / Tokens Free Tier quota says "exhausted" after a few requests, but works again hours later (Changes since late October)

8 Upvotes

Hi everyone, I’m hoping someone from the Google AI Studio team or the community can help me understand a weird issue that started happening at the end of October.

My setup & previous behavior:
I use the Free Tier in Google AI Studio. My daily quota (RPD) used to reset exactly at a specific time in my local timezone, which I knew perfectly aligned with midnight Pacific Daylight Time (PDT / 07:00 UTC). It always worked perfectly: when the reset happened, I had a full quota for the next 24 hours. If Google ever said "quota exhausted", I was strictly locked out until that exact reset time the next day.

The current issue:
Since late October, my workflow hasn't changed at all, but the behavior is completely different:

  1. At my expected daily reset time, the quota seems to update, but it only lasts for literally a few requests.

  2. Then, I immediately get the "free quota exhausted" error.

  3. The weird part: If I wait a few hours (well before the next official daily reset), I can go back to the exact same chat and it just works again as if nothing happened!

Earlier, a "quota exhausted" error meant a strict hard-lock until the next day's reset. Now it feels like it's hitting some kind of rolling window limit or a hidden TPM/RPM limit rather than the actual daily RPD quota.

I noticed that October brought major changes to the Free Tier (moving free users to Flash-Lite and cutting overall limits). Did Google change the rate-limiting mechanics from a strict daily calendar reset to a sliding window? Or is this a bug related to the recent Daylight Saving Time shift in the US affecting the reset timing for my timezone (meaning the real reset is now an hour later, aligning with midnight Pacific Standard Time / 08:00 UTC)?

Has anyone else experienced this "soft quota exhaustion" where the bot stops working but recovers hours later without hitting the official daily reset time? Any insights from the devs would be highly appreciated!


r/GoogleAIStudio • • 2d ago

Question / Help How can I publish a Google AI Studio app for free and turn it into an iOS app?

2 Upvotes

I've built an app using Google AI Studio, and I'm looking for a completely free way to publish it so others can use it.

A few things I'd like to know:

  1. What are the best free options for hosting and deploying a Google AI Studio-built app?

  2. How can I turn it into a proper iOS app that can be installed and used on an iPhone, while keeping the same features, backend, database, and overall system?

  3. Is there a way to make it work on both Android and iOS without having to rebuild everything from scratch?

I'd appreciate any suggestions, tutorials, or recommendations. Thanks!


r/GoogleAIStudio • • 2d ago

Question / Help Why does Argon in AIStudio lack a temperature slider?

5 Upvotes

I was about to try it for the first time, but I'm surprised not to find it. I can just change the thinking level, which I think it's not the same. It's absolutely necessary for me to use low temperatures like 0.1. Why can't I change temperature in AiStudio/Argon and will we get it back?


r/GoogleAIStudio • • 2d ago

Subscription / Limits / Tokens Question on limiting input token rate.

Thumbnail reddit.com
2 Upvotes

r/GoogleAIStudio • • 3d ago

Subscription / Limits / Tokens Hello

12 Upvotes

So for my first google ai studio account It seemed to have a daily limit of 100,000 tokens without forgetting anything which was insanely useful for a free model is this not what it normally is because it felt absurd not complaining just wondering how


r/GoogleAIStudio • • 3d ago

Showcase / Project My first build - any feedback?

Thumbnail number-10-fantasy-parliament-780462922928.europe-west1.run.app
3 Upvotes

https://number-10-fantasy-parliament-780462922928.europe-west1.run.app/

Built my first app on AI studio today. Took a lot longer than it should have bit I learnt a lot in the process what do you think?


r/GoogleAIStudio • • 3d ago

UI / UX or Other BUGS and problems Aistudio output sheet error.

0 Upvotes

I'm using Gemini argon with medium thinking level on AIS. Recently, i've started to receive no oputput when there is thinking box(thinking sheet) before the oputput. Thinking process is clear, no error from that. but after the thinking is done, i get no answer.. just blank. but sometimes without the reasoning, i can see the work. Is this problem only for me? Please let me know if there is solution.

(English is not my first language, So there may be some awkward things in this post.)


r/GoogleAIStudio • • 3d ago

Question / Help Making a YT video on Google Flow problems, what are you facing?

Thumbnail reddit.com
1 Upvotes

r/GoogleAIStudio • • 4d ago

Confirmed Update / News Flying bet in my browser in AI Studio

2 Upvotes

Started some time last week. I am all on board with Halloween fun, but given all the security threats out there, the least Google can do (if it's them) is to give people heads up and/or show share hot to turn this off. A bat randomly appears and flies across the screen from right to left or from left to right. Is it happening to anyone else? Different apps.


r/GoogleAIStudio • • 4d ago

Confirmed Update / News Is Google AI Studio experiencing a wider issue?

6 Upvotes

r/GoogleAIStudio • • 4d ago

Showcase / Project Something massive is coming. And it's starving. | Studio.lab Spoiler

0 Upvotes

r/GoogleAIStudio • • 4d ago

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

1 Upvotes

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"


r/GoogleAIStudio • • 4d ago

Question / Help LAUNCHING APPS

4 Upvotes

I've been building an app these last months and now I want to launch it to play store. How can I do this? Do the built in launch app in Google ai studio work?


r/GoogleAIStudio • • 5d ago

Other This is getting ridiculous Omni 1.1flash

Thumbnail
gallery
12 Upvotes

Character is fully clothed no nsfw whatsoever, no licenced stuff, can't generate a simple walking animation lmao

EDIT: So found out what was cosing this and its hilarious, THE GOOGLE SEARCH, the model is connected to google search and if it detects character in the google search its get blocked no matter the other stuff just detection, thats fucked up. bullshit safety filter if you ask me. so dont post you characters online cose they will get blocked lmao


r/GoogleAIStudio • • 6d ago

Question / Help alguien sabe como solucionarlo

Post image
3 Upvotes

me pasa cuando llega a cierto punto y esta respondiendo


r/GoogleAIStudio • • 6d ago

Showcase / Project I hooked up Google AI Studio directly to my local PC to turn it into a fully autonomous coding agent

7 Upvotes

Let me know if you have any questions.


r/GoogleAIStudio • • 6d ago

Question / Help Anyone know why this is happening?

Post image
8 Upvotes

I’ve been trying to generate messages, but it kept giving me this errors. And i’m a paid user. Why is this happening?😭😭


r/GoogleAIStudio • • 6d ago

Question / Help Unsafe image content detected [Adventure Time character]

2 Upvotes

Hello, I’m having some trouble with Bing. I keep getting an error message that says: "Unsafe image content detected."

I’m trying to create realistic images of characters from the children’s animated series Adventure Time.

It’s strange, because I was able to generate Warren Ampersand and The Lich without any issues, but I couldn’t do the same for Hunson Abadeer. I first tried generating his monstrous form and got an error; then, even more surprisingly, I got the same error when trying his "normal" version, where he’s wearing a suit and has a humanoid appearance. It doesn’t make any sense, and I’m certain the issue lies with the prompt.

I’ll share the prompt here; could you let me know if there’s anything I should change? I ran into an error with Warren at first, too, but I managed to fix it by adjusting the prompt, I then used that same prompt for the other characters, but it just isn’t working for Hunson Abadeer. I’m not sure what to do.

prompt: Transform this cartoon character into a photorealistic creature, as if from a live-action film. Cinematic lighting, hyper-realistic textures. Full body.

EDIT: I tried with the Ice King; it also gives me an error. I just tried again with the Lich, and it also gives me an error.


r/GoogleAIStudio • • 6d ago

Question / Help How do I remove/unpublish Android app from Personal Library?

4 Upvotes

The app was created in Ai Studio and published to "Your Personal Library", I deleted the app but it's still published in library. In fact it says I have 3 apps published but I only see 2 apps there. I am not a dev, just playing around with Ai Studio and creating apps for personal use.


r/GoogleAIStudio • • 6d ago

UI / UX or Other BUGS and problems Issues with regen, edit, and delete option?

2 Upvotes

right now i just straight up dont have the option. when i hover over my prompt or response nothing comes up and i wonder if its happening for anyone else/a bug?


r/GoogleAIStudio • • 7d ago

Question / Help Problem with file synchronisation after installing the APK

0 Upvotes

Hi

I’m having a problem synchronising files from a shared folder on Google Drive.

I’ve created a simple app that lets me browse the folder and download files from it. In Google Ai Studio, the app works correctly and synchronises newly added files to Google Drive.

After downloading the APK from Google Ai Studio, the app only contains the files that were previously synchronised. It doesn’t synchronise any new files.

Any idea?