Skip to content

San Francisco TUG

San Francisco Tableau User Group 15 Jul 2026

54 min 8,908 words transcribed

Summary

Louis Yu — a Tableau Visionary and Public Ambassador who co-leads two user groups — takes San Francisco TUG through Tableau's MCP server, and spends the first ten minutes on the distinction most people get wrong. An API is a fixed set of endpoints you call yourself, deterministically; MCP is the wiring that lets an LLM find and call them from plain English. That framing matters, because Tableau's MCP exposes only the REST and Metadata APIs, is read-only, and cannot reach the Graph API — so the field descriptions you carefully added to a published data source never reach Claude at all. The demo runs from connecting Claude to Tableau Cloud's public MCP endpoint and authenticating in a second terminal window, through querying a published data source conversationally, turning the answer into an interactive chart, and scheduling a weekly report that regenerates itself with commentary and named key drivers. It ends with both Tableau and Figma MCP pointed at the same problem, rebuilding a dashboard's layout against a component library Louis had drawn by hand two years earlier. On cost he is blunt: the whole demo ran to under $20, and Sonnet is enough — routing a question to the right API is not a hard reasoning problem.

Key points

  • An API is a set of endpoints you call deterministically and handle yourself. MCP is the wiring that lets an LLM discover which endpoint it needs and call it from natural language — often described as the USB-C of the AI world.
  • Tableau MCP is read-only. It can list, inspect, render an image and export a view to CSV, but it cannot publish workbooks or data sources, delete or update content, manage groups, refresh extracts or migrate a server.
  • It exposes only the REST and Metadata APIs — not Hyper, not embedding, not dashboard extensions. Every MCP in every industry is partial in this way; Figma's ships in two versions, one of which cannot write.
  • Field descriptions live in the Graph API, which Tableau MCP does not reach. The semantic layer you built into a published data source is therefore invisible to Claude — so make your column names carry the meaning instead.
  • Tableau Cloud has a public MCP endpoint at mcp.tableau.com. Tableau Server means cloning Tableau's official GitHub repo and hosting your own, usually on an internal web page.
  • Authentication has to happen in a separate terminal from the Claude session — running the login command in the same window silently does not work. Start each project in its own folder so everything stays contained.
  • Answers come back through the REST API rather than being generated, so invention is limited. Turning off the other connectors — web search, Figma — narrows what Claude can reach for further, because these models are predictive by nature.
  • Claude will write itself a scheduled job that regenerates a full report on a cadence, complete with a generated timestamp, AI commentary, named key drivers and a top-three action list — which is much the same thing Tableau Pulse is doing.
  • Ask for a North region that Superstore does not have and Claude pushes back rather than inventing one, but only because it was told not to assume. The constraint has to be in the prompt.
  • Tableau MCP and Figma MCP together can read a dashboard as an image, identify each chart type, and rebuild the layout as design frames using an existing component library — useful mainly for understanding a workbook you have inherited.
  • The whole demo cost under $20. Sonnet is sufficient for MCP routing; save Opus or Fable for planning a real build, and never use the expensive models for the coding itself.
  • Confidential data needs the same clearance it always did. Claude is a cloud environment whatever MCP is doing, and an enterprise plan's no-training promise is not a substitute for your own security sign-off.

Jump to a chapter (25)

  1. 0:00 Welcome and agenda
  2. 0:13 Austin TUG's community viz contest, and how to enter
  3. 2:13 Coming up: Michael McCusker on Tableau and Cloud
  4. 3:14 The Tableau Community Slack
  5. 3:51 Introducing Louis
  6. 4:57 Who Louis is: Visionary, Ambassador, Games Night Viz
  7. 5:54 The elephant in the room: the analyst role is changing
  8. 7:04 What an API actually is
  9. 8:24 What MCP is, and how it differs
  10. 10:46 Where the two diverge: visuals, data and write access
  11. 13:53 Demo: two ways to connect to Tableau MCP
  12. 15:38 Authenticating Claude against Tableau Cloud
  13. 18:28 Moving to Claude Desktop and listing what is on Cloud
  14. 20:12 The metadata limitation: descriptions Claude cannot see
  15. 23:09 Querying a published data source in plain English
  16. 23:54 Turning the answer into an interactive chart
  17. 25:22 Where does the data come from, and stopping Claude guessing
  18. 36:25 A report template, and a scheduled job that reruns it
  19. 40:18 Combining tools: Tableau MCP plus Figma MCP
  20. 43:09 Rebuilding a dashboard against an existing component library
  21. 44:59 The LaDataViz Figma-to-Tableau plugin
  22. 46:00 Recap: what Tableau MCP and Claude are actually for
  23. 48:17 Q&A: is it worth it on token consumption?
  24. 51:14 Q&A: what about highly confidential data?
  25. 52:24 Wrap up

Transcript

0:00 Joshua Vijeh: An agenda here.

0:02 Yeah, did you… Oh, thank you.

0:04 Celia Fryar: Sorry about that.

0:06 Joshua Vijeh: No, appreciate you hitting record. We want to get this, uh, we want to get this for other folks.

0:11 So, uh, the agenda, well, we've got the Austin Tableau User Group sponsoring an event, and, uh, Celia, I don't know if you want to give a little bit more information.

0:21 Celia Fryar: Yeah.

0:21 Joshua Vijeh: But I think folks would be really interested in this one.

0:23 Celia Fryar: Thank you. Yeah, we are opening this up to anyone globally who wants to jump in and participate. Um, it is… There- We did not specify a data set on purpose because of the timeframe and the summertime. So if you've got a Makeover Monday, Work Out Wednesday, passion project that you've done, and you want to jump in and submit it, um, please follow the, uh…

0:45 There is a, um, a link to the event page on in the deck I passed you, Joshua. If you don't mind throwing that into the chat, that would be amazing. But you also can find this in the Tableau, uh, User Group Upcoming. Uh, so the deadline for submissions are the 26th, and then on the 28th we've got just kind of a really cool lineup of folks who are gonna act as our judges.

1:08 Bo McCreedy, who was the 2025 Iron Viz champ, and then last year he was th- this year, in '26, he was an, uh, Iron Viz judge in the room. And then, uh, Blake Wieza, who co-leads Makeover Monday, and is a rising star, and also ambassador. He is, um, was an extraordinary, gave an extraordinary, extraordinary speech, uh, on, um, on the, um, map layers at Tableau Conference this year.

1:33 He's gonna be one of our judges. And then finally, Katie Clarke, who ran the program for Iron Viz at Tableau the last few years, and until just recently. And so all of these guys are gonna be on deck in Austin. And so we will do an in-person and hybrid, where we'll be broadcasting from 6:00 to 7:00 PM Central Time, um, the judging and feedback and voting.

1:55 But we would love for you guys to participate. Please, please, please. And I'm- I've been holding an office hours on Tuesday afternoons to help anybody, like preview, refine, edit, you name it. So, um, all that's available to support the process. And so would love to have you join us.

2:12 Joshua Vijeh: Excellent.

2:14 Yeah, and for the next, uh, next meeting here with the San Francisco tag, we've got Michael McCusker, and he's, uh, he'll be joining us to give us a little bit more insight on Tableau and Cloud, and we'll, we'll put more information in li- in the, uh, chat as well. Um, if you haven't had a chance to watch, uh, some of his presentations, I know he's done quite a bit with map layers as well, and I think, uh, I think you'll really enjoy, uh, the session in September.

2:42 So make sure you mark your calendars, and we'll send out some information, uh, when we get closer.

2:49 All right. So for today, uh, if you have any questions at all, as, as Louis is presenting, uh, for himself, for him or, or any of us, feel free to use the chat, and we'll be monitoring those, uh, answering within the chat, and also, uh, giving some time at the end hopefully for some Q&A.

3:05 And we will be recording this session, and we'll have that available on YouTube as well, and we'll send out some information for that once it's available.

3:14 All right. So if you haven't joined, uh, the Tableau community on Slack, it's a great place, uh, to not only get support from other users, but questions answered. I know a lot of the community is very active. So if you haven't had a chance to join, the, uh, the QR code is there on your screen as well as the, uh, the URL.

3:33 Um, but I think, uh, I think you'll… Any- anything related to Tableau, any future announcements, folks, uh, oftentimes will also share things that they're working on for feedback. So just a great place and a, a central hub for all, all folks, uh, in the Data fam.

3:51 All right, so Louis, we gave a little bit of an introduction earlier, but, uh, you can see the list of items he's, uh, he's involved in. Uh, again, we're, we're, we're so lucky to have him. And if you haven't had a chance, uh, I highly encourage you to check out his site there, uh, datavizlouis.com. Uh, what you see there on the screen is, is, uh, an introduction to some of the work that he's done in portfolio that he's got.

4:17 It- it's incredible. Um, if nothing more than the, the UI and UX that, that he's put together. So, uh, maybe not during the meeting, but I highly suggest afterwards, make sure you check that out. Um, uh, it, it's definitely worthwhile.

4:32 All right, so I'm gonna go ahead and, and pass it over to Louis. If Louis, if, if you're ready to go, uh, I know I'm excited, so, uh, I'll pass it over to you, and, and, uh, welcome.

4:46 Louis Yu: Sounds good. Thank you for your kind words, Josh. Uh, and thank you for, you know, taking the color scheme from my website to do that slide. I noticed that.

4:57 All righty. Hi, everyone. Um, all right, so this is a, just a quick one-pager. Uh, I do hold a lot of hats.

5:05 I'm a Tableau Visionary, Public Ambassador.

5:08 I co-lead two Tableau user groups, as well as Games Night viz community project. Uh, I also do podcasts for Secrets of the viz, which basically just interviews authors on, like, amazing basis, and they're behind the scenes.

5:21 I am gonna start a new podcast soon, which is video game centric. So what we'll do there is looking at video games design, uh, the UX and information design within video games, and how we can actually translate some of that into dashboard design.

5:38 So hopefully this is something that you guys are looking forward to. Uh, if you want to connect with me, there is a QR code over here which you can scan, or you can, you know, visit my website, which is www.datavizlouis.com. Uh, should be easy to find. Um, so today we're gonna talk about a little bit on how we can use Tableau MCP, but before we go into that, I think one thing we need to kind of address the elephant in the room is that, uh- Uh, we used to be this, right?

6:09 Like, in terms of, like, the traditional BI analysts. We're using Tableau or Power BI for some people, but it's usually a, uh, a cycle of, uh, SQL, Excel and, you know, uh, CSV and whatnot, but it's a kind of like a, a, a cycle of, of these three tools. Uh, what we are seeing with the introduction of Claude and, uh, various LLM models is that now with MCP we can actually use LMM, which is Claude or a- any of your choice, like OpenAI or whatnot, uh, to kind of communicate within all of the different tools out in the market.

6:46 So be it Excel, be it SQL, be it Figma, Tableau, or even the suite of Google, uh, tools, right?

6:53 So having said that, uh, we are seeing a evolution of the traditional, you know, Tableau analysts and how do you get ahead of that. So before we go into that, I wanna spend a little bit time to talk about what is MCP and API, because they are very closely related.

7:12 Uh, I want to talk about the differences between the two features and how to get started with Tableau, MCP and Claude, and then I'll show you guys some use cases that you can actually adopt, uh, in your day-to-day.

7:24 So, um, API, right? So if you have… I think most of us probably have not dabbled a lot with API, but this is basically a list of the APIs that's available from Tableau. Um, if you're not a dev, this is quite overwhelming, right? You have REST API that deals with, you know, programmatic access to your content, uh, giving you the ability to change permissions, rename sites, rename workbooks, and so on and so forth.

7:56 We have Metadata API, which allows you to pull information from the workbook itself. Uh, you have Extension API, um, abending, abending, embedding API that allows you to kind of integrate, uh, Vizs within a web app and so on and so forth, right? So there are different APIs and you kind of knowing what API does what is, uh, quite a hassle, uh, which is, you know, what MCP comes into, in, into play, right?

8:25 So if you take– talk about MCP, right, uh, MCP is essentially the wiring between all of the APIs, and the APIs is a signal that we are sending back to the Tableau back-end, right?

8:39 So if you, if, if we talk about the differences, right, um, the API is a set of endpoints, right? It's, uh, it's, it's programmatic, it's determined, uh, deterministic, uh, and you decide whatever that runs, uh, and how the response is actually handled. And it's, you know, one way because it's only… it's based on a, a query language, right? For MCP, uh, it's a…

9:05 A lot of folks like to refer MCP as the USB-C of the, the AI world, uh, which kind of makes sense because you are e- essentially using it to connect to different APIs. And MCP is not a Tableau kind of, uh, feature or, or kind of, uh, function. Uh, MCP is used for various other industries as well. So Figma also have MCP, Google also has MCP, and so on and so forth, right?

9:32 But what it does is the MCP exposes the LLM, which is Claude and OpenAI, to the whole suite of APIs, uh, that is available. So it's easier to kind of work with, and the MCP is able to draw context from what you are trying to ask and pull in the relevant API. So you don't really need to know the full, uh, extent of what each of the API does because it's quite a lot, uh, and M- MCP is able to kind of do that for you.

10:03 Uh, but there are some limitations to MCP, uh, in terms of what you can do with both tools, right? So for APIs, uh, if you kind of do it through, uh, and you create a script to kind of, uh, pull in the kind of the workbooks or, you know, you wanna do a batch update of all the workbooks permissions and so on and so forth, uh, you can do that, right?

10:28 So you can see over here what I've listed is, um, discovery and understanding of context, right? So for that, both MCP and API can do the same thing, right? Listing out the views, listing out the workbooks, inspecting the views, uh, listing the data sources, and so on and so forth, right?

10:46 Now, it starts to get a little bit different when it comes to getting the visuals and the data itself. So for the most parts, MCP can render an image, can export a view as CSV, but it cannot export PDF, it cannot export custom views, right? And if you go down further down the line, right, uh, this is pause, let's skip that, uh, you can see that MCP doesn't allow you to publish workbooks or data sources.

11:16 It doesn't allow you to delete or update content, manage group, set content, so on and so forth. So if you think about it, uh, this is beyond the server itself, so kind of refreshing your extracts, migrating server to cloud, and so on and so forth. At the end of it, API allows you the full suite of the back-end operations.

11:38 MCP is a read-only access, right? So there's no write feature, uh, that is being incorporated in it. So how people use this is MCP is often integrated with chat models, right? Uh, and API is when you're building an end-to-end, uh, solution. So be it a web app that uses a certain API. Let's say if you're building a portal, like your own admin portal for you to easily, you know, change permission for all the dashboards in your site, then you'll probably reach for an API instead of a MCP, right?

12:14 So before I move on, is there any questions on that? Because in order for us to kind of, you know, understand this whole context, you guys have to have a very strong understanding of what the differences between MCP and API is.

12:29 Celia Fryar: This is incredibly helpful. And it seems like in my client base, there's a lot of confusion right here on this point, so thank you for this.

12:37 Louis Yu: Yeah. B-because I was trying to think, like, you know, what's the best way to start the right footing, uh, because everyone gets confused. 'Cause MCP can reach out to the APIs, uh, but via, you know, uh, uh, LLM. But, you know, how much gets exposed is another thing, because Tableau MCP doesn't have all of the APIs, right? Uh, for the most part, it has REST API, it has metadata API.

13:01 It doesn't have hyperdata, it doesn't have embedding, it doesn't have dashboard extensions. Uh, but I, I know that the devs are probably working on it, I guess. Uh, so it's slowly rolling out. I think eventually we'll see all the APIs being covered in the MCP. This is the same for every industry as well. So for example, like Figma MCP doesn't expose everything.

13:24 Uh, there is… I think there's two versions of the MCP as well, um, and one of them doesn't have, uh, the… One of them allows you to query, uh, the design files but doesn't allow you to write. The other one does allow you to write. Um, so there, there are two different things.

13:43 Uh, but yeah, the industry is evolving very fast, as with AI. Um, so it's gonna change quite a bit.

13:53 All right, cool. Um, so what I'll do is I will do a little demo. Um, in order to not waste everyone's time on bot sitting, uh, let me just go through some of the key steps of connecting with MCP first, right? Uh, there are two ways of connecting to MCP. The first way, uh, a-and it depends on whether you're connecting to a Tableau Server or a Tableau Cloud, right?

14:17 Uh, so there is either hosting your own MCP, right? Uh, and that is for Tableau Server and Cloud.

14:26 Uh, and you need to kind of clone the GitHub, the official GitHub from Tableau in order for you to do that.

14:33 Uh, however, if you are on Tableau Cloud, Tableau actually has a public MCP that you can use, and that's what I'm going to demo today. Uh, essentially it's the same thing because, uh, we're running it through, uh, LLM. So this is Claude CLI, which is kind of the command line thing. Uh, so what this does is that, you know, uh, with any LLM, you can prompt it using natural language.

14:58 So from here, what I'm trying to do is that I'm just, you know, telling them that I want to connect to the MCP.Tableau.com, which is the one that they have created publicly for Tableau Cloud. Uh, and because I already have, like some, uh, another, uh, Tableau server implementation, uh, it kind of asks me whether I wanna kind of duplicate or create a new one, right?

15:23 Uh, but you can do the same thing with the hosted one. So they'll guide you through, you know, what are the steps to host your own MCP. Uh, and it's usually just hosting it, uh, on a web page, uh, in your internal server, right?

15:38 So once you get through this step, uh, Claude will go through like a couple of questions that it'll ask you. Um, and it's not re- it's not overly complex, uh, but what they will need you to do is do authentication as well, right? So once they install the package that is required for the MCP, uh, they will ask you to try to run this script, which is Claude MCP login Tableau.

16:02 But what you'll realize is that it doesn't allow you to do that from the same window. Uh, so this is kind of like the Claude, uh, window. Uh, you need to run it through a separate window, uh, to kind of do that, uh, browser authentication, and this is how it looks like. So in order for you to create… So this is the old kind of the Claude instance that I've created.

16:25 In order for you to create a terminal, uh, what you can do is that you can just right-click on the same folder. Uh, so what I like to do is when you're starting a new project, uh, start, start it with a new folder itself, so everything gets contained within it. So once you start a terminal, right, uh, this is just pointing to the same folder. You can run that same, uh, code that Claude actually gave you, so Claude MCP login, uh, but I need the Tableau, which I missed out the first time around.

16:56 And what it does is it prompts up a external browser for you to kind of log into your Tableau Cloud. So over here you see me trying to log into my Tableau Cloud and, uh, you'll need the URI, which is the link to your cloud instance as well, which would take a while, and then you'll see them requesting for, yeah, the, the authentication and then getting you, yeah, requesting access.

17:25 Uh, so all of these are the functions that they require.

17:29 And once that is done, the authentication is successful, and then you can actually close this terminal itself, right? And then the last step is actually just checking if the MCP is connected. So you go back to the original Claude window and just prompt it using natural language. You know, I've logged in, you know, recheck the connection. And what Claude does is that it'll run some connection tests, and then it will say that, you know, the connection is successful, and it would appear…

18:04 Yeah, it takes a while. Yeah. So you can see that here it's connected and authenticated. Connected now. So once this is done, uh, then you can either use, continue to use your CLI if you're comfortable using command line, or you can migrate over to the Claude Desktop, which is what I'm gonna show. I think that is probably the more common ways that people would use, um, this one.

18:29 Right. So over here, this is my Cloud desktop instance, right? So like I said, what I like to do is that I wanna kind of start with a project, uh, folder, right? So this is the demo that I have.

18:43 So over here, what I can do is now that I'm connected to the Tableau MCP, I said I can tell them, you know, list down all of all my data or maybe what's available,

19:01 uh, on my Tableau Cloud.

19:06 Right. And then what you'll see it try to connect.

19:12 This hopefully doesn't take too long. Uh,

19:18 and you will see… Yeah. So Tableau tools are loaded because, uh, the authentication is already done, and then it starts to… So you can see, like this one, list workbooks is a REST API, uh, function, right? So it's using the– So it's, uh, querying all the APIs that they can use and using it properly. So over here, I have one, two, three, four, five, six, right?

19:42 Six folders– uh, six dashboards. And if I open up my…

19:48 Let's see, where is my… This one. Okay.

19:52 My cloud, you can see the same thing. So I have, uh, this one, basically, it's my Tableau, uh, Tableau Public's, uh, visualization that I kind of republish on my cloud. So I have one, two, three, four, five, six, right? These are the data sources. So it lists down the workbooks, right, and then there are three published data source. Right.

20:12 So you can see that here, over here, I have actually two– So this is the Games Like This dataset that is available for the public.

20:20 Um, I have two versions here, right? One with the metadata and one without the metadata. And what I mean by that, let me just open up and I show you guys what that means is, uh, hopefully this doesn't take too long.

20:37 Just wanna show you a little bit on like the limitations of that. Let's see.

20:44 Okay. So this is the, the Games Like This dashboard that I've, uh, put on public.

20:50 The, the one that says– The, the one that doesn't have the, uh, brackets no meta-metadata is this version, right? And what it means that, uh, this is already curated. So if you hover over each of the fields, you can see that there's a description that we've added in to kind of help people understand what the field exactly is.

21:09 Uh, and you can actually…

21:11 You know, this is populated through the default properties. This is a good practice, actually. Uh, so it shows you like, you know, this is a bloom value, uh, and these are the values, right? So essentially, this is just adding, uh, putting this as a semantic layer for your data source so that anyone that queries the data would understand, or the LLM would understand, you know, what is the context behind all of these fields, right?

21:36 Now, for Tableau MCP, unfortunately, it only has access to the REST API and the Metadata API that doesn't expose that description, right? The one that is, uh, expose the description is another API called the Graph API.

21:55 So what's happening here is that, uh, let's see if I can see this. Uh, this is an old query that I ran, right? So what I did was that I asked Claude, you know, what's in the GNV, the Games Like This data-dataset with no, uh, metadata. It tells me all of this, right? So it's essentially the same shape as the GNV, which, you know, presumably carries richer metadata.

22:22 Uh, and then I got it to kind of, uh, run the same thing for the sibling, right? So it says that, you know, it's the same thing, just that the join is different.

22:31 Uh, but the problem it ran was that it couldn't grab the description, uh, from the, the one without the– uh, the one with the metadata itself. So that is the limitation of, um, the MCP. If you run it through the normal API route, you'll be able to run that, right? So hopefully that they will add that feature into MCP in the near future. But as of now, it doesn't really matter if you have, uh, you know, cool descriptions of all your measures in the, uh, published data source.

23:06 Just make sure that, you know, your column names make sense, right? So from here, what we can do is that, you know, uh, let's look at, uh, GNV dataset.

23:18 Tell me how many games, how many games are released every year, right.

23:27 So with Tableau MCP, you are able to use, you know, natural conversational, uh, AI with this, uh, to kind of talk and using M-MCP to pull out the necessary information from the published data source. So there is no hallucination involved because– or rather very limited hallucination because it's running through the REST API. Uh, it's not inventing numbers on their own.

23:50 So you can see that now it pulls out all the information, you know, number of games for each year, right? But I don't like tables, right? I, I like it to be a chart. So, you know, visualize this in a line chart for me.

24:04 Right. And what they will do is that it will do– it will create a artifact within the cloud code, uh, window itself, and you would see that, uh, happening in just a couple of seconds.

24:23 Let's see.

24:25 And there we go. Right. So you see the line charts over here. You can add more interaction. You can tell them that you want tooltips, you want, you know, the ability to filter by genres and stuff like that. So you can add different things, right? So, um, add a filter for me To interact and change, uh, let's say genres.

24:48 Um, so you can do couple of different things, um, within, like, the conversational window, and do, do, do. It'll take a while.

25:02 Let's see.

25:08 Not one.

25:15 Okay, let me see.

25:18 This one would run in a bit.

25:23 Joshua Vijeh: Louis, as we're, as we're waiting for it to, to query, uh, I think naturally some folks who haven't used MCP, uh, they may wonder how much of the data is coming from, um, like your local source, the Tableau Cloud in this case, and how much may be coming from, you know, uh, Claude, you know, doing a search on, on the web.

25:42 Louis Yu: Yeah. So what you can do is that over here, right, you have the ability to, uh, prevent it from…

25:49 Let's see. Manage. You can take away Claude in Chrome so that it doesn't do any web search. Uh, you can take away Figma. I mean, I currently have Figma MCP, uh, connected as well. So you can take away everything that restricts Claude from searching elsewhere except from, except for the Tableau MCP, and that reduces the amount of, you know, uh, assumption that Claude does because like it or not, AI models are predictive in nature, right?

26:17 So they would try to predict what you are trying to meet, try to say to them, and, uh, you know, uh, that's, that's how it goes. So this is, uh, the interactive, interactive-able version that they created, so you can actually, you know, now I can sort, create by, you know, sort by the different genres and stuff like that. So there's different ways you can go around this, but this is kind of just an example of how you can actually do it.

26:42 Uh, the best way after this is you can also ask them to extract the data. So I want this, you know, say this data in a CSV, right?

26:53 And they can actually generate a file for you. Uh, so if you think about your whole data set, right, uh, if you go over there, let's see.

27:05 Let me just show the other one.

27:07 Right.

27:08 So this is the full length of what is available in the data source itself, right? So there's a lot of fields in there, uh, and sometimes when you want to extract a CSV, you don't need, like, maybe I don't need the publisher, I don't need the developer, I don't need the Metacritic scores, right? I only want the number of games, and this is how you can actually create something like that.

27:32 So over here, let's say if I open up the per year, this is what

27:40 it will create for me, right? Because I specify that I only want the games per year. So it aggregates the data for me based on the query they ran against the REST API, and pull out the necessary information. So you can think about this like enabling your, your marketing analyst or your, you know, sales analyst who just want a portion of the data.

28:02 They, they don't need the access to the whole query itself. So you can say that, you know, I want sales for this department for the last six months, and Claude is able to kind of push that parameters back into Tableau, back via Tableau MCP, uh, into the A- various APIs to pull that information back. So it's a, so it's using that connector to, to do that, right?

28:25 So that's one way, um.

28:28 Now, once you have that, you can also return an image. Uh, can you show me a screenshot of the, let's say the chromatic of the Force dashboard, which is a… Hopefully there's Star Wars fans in the crowd today, um, and you'll see what I mean.

28:50 Some of you might have seen this dashboard before.

28:55 Uh, so this is the function that there is, uh, Tableau MCP is actually using the API for, which is called Get View Image. Um, and this comes from the REST API as well.

29:06 Right. So this is the info view, blah, blah, blah, and then, let's see, you can see that it can actually extract the information, extract the image itself from here. The only thing that Claude doesn't, uh, like MCP doesn't allow them to do is because it's a read access, it can't save that image because it's just pulling, uh, bytes of information, uh, and Claude just renders in, on, on the page itself.

29:34 So with this, what you could do is that you can start to save, like, a copy of, like, all the different images. Say, for example, over here, right? I have, like, all of the images that I've saved from, you know, conversing with Claude, and I can ask Claude to create a, uh, a static H- HTML. So I can do something like, you know, uh, can you create a static HTML as a site portal that lists, um, each dashboard as a card with title, description, owner, last updated date, and a link to the actual content on Tableau Cloud?

30:22 And I think it's gonna take a while, but I already have something that I did. Uh, let me just open it up, and this is, this is a very simple way of kind of putting everything together. So imagine that you are kind of curating content for various teams, right? Maybe you have, like, 1,000 workbooks on your Tableau Cloud, uh, and not everyone needs to see the 1,000, 1,000 workbooks.

30:46 So you can create a view for, let's say, the marketing team, uh, and curate just those views for them. And they have, you know, uh, you can, can run a routine to update that so they can see, like, when's the updated date. Uh, they can immediately click on this dashboard To go directly, uh, click on the image or the link to go directly to the dashboard itself.

31:06 Uh, they can have kind of like a thumbnail to see, like, what's going on with the dashboard itself. Uh, yeah. So let me just stop this because this will take a while.

31:17 Um, so that's another way that you can use Tableau MCP.

31:22 Uh, one– two other things that I usually like to do with, uh, Tableau MCP is that I want – I can create routines, right? What I mean by routines is that it's a scheduled job. Uh, let's say if you have a monthly report that you need to run, right, uh, and you don't wanna download the workbook. So imagine a Tableau dashboard, right, uh, might have different views itself.

31:48 So let's say if you go to Superstore data, right, and you go to the overview page.

31:56 Now, this is a entirety of the business if you think about it, right? Uh, and if I need to generate a report for, let's say, the west region versus the south region versus the east region, I then need to change the view, uh, to a different view, or I need to kind of set this is, and then I need to download the workbook as an image or a PDF, and I send it over to someone else, right?

32:22 What I can do is that I can ask Claude to say, you know, "I want to set up a routine," right, "that creates a report every week or every month." Either way it works.

32:37 Uh, and then the data should be retrieved using the Tableau MCP and queries the Superstore,

32:49 Superstore dashboard,

32:54 right?

32:55 Um, what I can also ask them to do is analyze the last three months' data to create for each region, uh, a summary as follows, right?

33:10 And then what you can do is that, uh, with, with prompt engineering, right, uh, you wanna provide as much context as you can for Claude to kind of, uh, put through that. So what I'm gonna do is that for each report – so the hex sign is often used for a kind of like a header, a break from your text so that Claude can read it in sequentially. So for the report, I want one for each region, and for that, what I wanna do is I wanna have one, um, kind of AI paragraph, let's say, right?

33:46 Uh, one paragraph to describe the overall growth or decline in the last, uh, three months, right?

33:56 Uh, I wanna have key drivers for gains and losses.

34:04 Um, um, I wanna have top three action plans, for example, to improve, uh, business, right?

34:14 And then you also wanna add constraints, right? Uh, and constraints will allow you to restrict what Claude cannot do. Um, so what I often like to do, especially when you're working with data, is tell them, "Do not assume or fill in numbers, uh, if data is not available," right? Uh, this adds a guardrail to what you're trying to get there because if you're creating a report that goes out to your management every week, that report has to be 100% accurate.

34:47 Um, so this is one way I do it. Um, so data should only come from the published data source.

34:57 Uh, report should be a static HTML file with embedded data, right? So there's no, like, uh, a data file in HTML, so everyone that has that HTML can actually open it up. Um, timestamp is important as well. So timestamp, uh, let's see. Timestamp should be clearly visible to provide, uh, traceability.

35:30 Uh, and one of the other more important things is do not embed any security keys. Uh, I would- I'll often like to do this because sometimes, uh, if you don't tell Claude, Claude… I mean, Claude has gotten a lot more clever in, you know, catching up this thing, especially like with the new Fable, Mythos, uh, security protocol and stuff like that.

35:53 Uh, but it's always, you know, good to err on the safe side, right? So do not embed any security keys, API keys, um, uh, let's say tokens or any user identifiable, uh, information, right?

36:10 So once I do that, what it does is that it will start to ask me a couple of questions and stuff like that, uh, but I'm gonna skip that so that I can… Let me see. I might have something that I have it here. Yeah, so this is the same thing. So it ask me kind of a few couple of questions like, you know, uh, sometimes they have assumptions, uh, because I purposely added, you know, do not assume and stuff like that.

36:34 So if they have, uh, a doubt, they will ask me.

36:39 And what it does is that it will create a template for me, right? So the template would be used to kind of generate the four different, uh, dashboards, and this is kind of like a sample of what it looks like. Let's see, where is it?

36:56 Report.

36:58 Right. So this is something that they created. I haven't done any design work on it, so it's, it's just plain Claude stuff. Uh, but over here what you can do is that, you know, we have the generated timestamp, which I explicitly told them to add in. Uh, you have the data source, uh, what's the timeframe of the comparison, uh, and then the ability to swap between, like, the four different time…

37:20 You can ask them to split it up into four different files, uh, but I specifically told them to put it in one file. And you see over here it has created AI, AI commentary, uh, based on what they have seen the numbers, and this is quite useful actually. I mean, if you're thinking about, uh, Tableau pals, this is essentially what they're doing as well, right?

37:40 They're still pulling up published data source data and running through a LLM to kind of create a kind of like a verbose way of, you know, summarizing the data.

37:51 Um, and then I told them to add the key drivers, you know, profit, uh, technology profit file from this to this, uh, within technology machines lost blah, blah, blah, uh, category drivers, and then top three action plans, right? So, like, the root causes, investigate, uh, what are the places that we need to take note. This is obviously gonna subject to different business contexts, but as long as you're able to prompt and give Claude that context, they're able to act on your behalf to kind of create something that is more bespoke to you, right?

38:24 I mean, this is just Superstore data, so there's nothing too fanciful about this. Uh, but you can see that over here, if you look at South, the whole story is different. East, the whole story is different. Central, the whole story is different as well. Uh, the one thing I wanna show you as well is over here, I specifically told them that I want the…

38:45 Let's see.

38:47 Uh,

38:49 where was it?

38:53 North.

38:55 Where was it?

38:59 So there was, there was a section, I can't find it, but there was a section where I told them to create a North report, right? But there's no North data in Superstore. There's only, there's only, um, West, South, East, and Central, right? So they specifically called me out on that saying, telling me that there's no North data. Did you mean Central or did you mean West or some other region?

39:22 So, uh, that's the, that's the display of, you know, Claude abiding to the constraints that you have put in place, right? So that's one, one way of doing it. Uh, and the good thing about this is once you have that kind of like the template go on, uh, Claude actually creates a scheduled job over here, right? Which if you open it up, uh, this is the whole chunk of code that it runs, uh, every week.

39:48 So the next run is, uh, next Monday, right? Or you can run it now, and it generates that whole report again. Um, and you don't have to do anything. So as long as you– they kind of set this folder, what happens is that you can– they will generate the report and you just, you know, pull out the new report from here, drop it in an email and send it to someone else, right?

40:07 So that's, that's one way of kind of simplifying your workflow if you're in a role that requires you to, you know, churn out these reports, uh, you know, every, every weekend, every month.

40:18 So that's one. Um, the last thing I will leave you guys with is the ability to combine different tools. So remember I talked about, uh, let's see if I go back to here, right? I talked about, you know, the evolution of, uh, traditional Tableau analysts, right? You have other tools that are available.

40:38 Some of us, uh, do use Figma for doing mock-ups and everything, and usually the other way around. So we do the mock-up in Figma, and then we recreate in Tableau. What you could do is you can also hook it up the other way around. So let's say you have an existing dashboard, right? So if you go over here, these are all the dashboards that I have.

40:59 What I have here is…

41:04 Right. I have all those dashboards.

41:06 I got Figma, right? I got that connect to my Figma, and recreate each of the workbooks layout in a design page, right? Now, because, um, it's a read-only and Tab– uh, they can't– The Tableau MCP doesn't allow them to actually read each of the chart's values. So if you're, if you're looking at, like, individual charts, right? Let's say for Superstore data.

41:38 Within this page, now the Tableau MCP doesn't have access to read each of these different pieces.

41:45 What they can do is from the image itself, Tab– uh, Claude can actually, um, as a pin, you know, this is a, you know, KPI chart, this is a bar chart, this is a area chart, and stuff like that.

42:00 And what it can do now is then create something like this.

42:07 Um, right.

42:09 And you can see that here it ma- it managed to map the numbers because from the screenshot itself, uh, but, you know, the design is bit different, but it's able to understand the layout within the, the chart itself. So this is the original.

42:25 Uh, let me just close this, right. So this is the original, um, dashboard, right? So same thing for population and birth rate. Uh, this was the, the other dashboard that I did for Anvis. You can see that it's, it managed to kind of put out all the different sections. Uh, so this is good as a start, right? Obviously, this is probably not very useful for, you know, day-to-day, uh, but it's good to kind of understand what goes behind, like, the dashboard.

42:52 If, let's say, you are inheriting a workbook from another team member, this will be a good way to understand, you know, how they have actually built it, uh, the structure itself, right? You can see that it manages to pinpoint all the different elements within the dashboard itself. Now, the next step from here, right- Is that if you have an existing, uh, component library…

43:14 Let's say, for, for example, for me, uh, within 2K Games, I– we create a Figma asset library, which is essentially just component library of like different, you know, uh, chart types, uh, which you can build easily with Claude or by hand. This, this was built hand, by hand, uh, by me maybe like two years ago before Claude was popular. Uh, I probably can kind of redo this, but you can see that there are different elements that they can use.

43:43 Now, with this, what I can do is that I can feed it back to Claude, okay? And I can say that, you know, I want the real chart visuals, right, based on the labeled box, right, which is essentially all this labeled box.

43:59 And, uh, better yet, can we reuse a component library of charts that I already have, right?

44:05 And what Claude can actually do is, this actually takes quite a while. I think it took me like, I think 10 to 15 minutes to run through everything because it has to kind of generate, uh, create each of the, uh, frames by itself. Uh, but what it came back with is that now you can see that it uses my line charts, my world map, and the format of my KPI charts that I have.

44:30 So you see like the, the delta arrows being placed in there as well. Now, the, the fonts are a bit, uh, wonky, but I mean, with some iteration it can do better. Uh, it's able to kind of put in the bar charts, the heat maps. It's not perfect, uh, but at least it's able to kind of pinpoint certain things within it, right? It's not 100%, but, uh, these are kind of some of the ways that you can actually combine different tools to, to make it work.

45:00 Uh, and if you've been around for a while, you know that, uh, viz Extension is also a huge thing in our community. And, uh, if you haven't used, uh, LaDeva- LaDataViz viz Extension, uh, do try them out because, um, LaDataViz also has a tool, a plugin called the Figma to Tableau plugin.

45:22 And what this does is that, uh, as long as your component or the frames itself are named properly, say for example this one, uh, if I name this as like Sheet,

45:35 uh, you know, uh, World Map, right?

45:41 In my Tableau file, if I have a worksheet that is called World Map, it can tag directly to that page itself, right? So if… That's, that's one way you can actually combine, uh, the usage of, you know, plugins like this, uh, with Claude and Tableau MCP and Figma MCP.

46:00 So all in all, it's a lot to cover, I know. And, uh, probably you guys won't remember half of it. Uh, but this is, uh, one slider to show you guys like what you can actually do, right? So for use case for Tableau MCP plus Claude, right, you can access your data from published data sources or dashboard, so you can query language, uh, query da- data through natural language.

46:24 You can extract data into CSV or image. The next thing is extending the capabilities of, uh, within Tableau or into other tools. So let's say, you know, I, I, I demoed, you know, how do you create a bespoke view for different dashboards, different departments? How do you automate dynamic reporting?

46:43 And how do you enhance your mockup workflow to kind of collaborate with other teams? So you can, you know, send that mockup to, uh, the X dashboard developers, uh, or other teams like, "Is there anything that we need to change for this dashboard?" And so on and so forth. And you get feedback, and you can kind of kind of reiterate the, the whole dashboard development process again.

47:03 So that is all I have for you guys for today. Hopefully this is, this has been useful for you guys.

47:10 Joshua Vijeh: Yeah, Louis, this is – I'll speak for myself – this is incredible. Um- And even though I've, uh, played and experimented with MCP, uh, you know, you've given me some ideas to go back and, uh… I mean, it's just further proof that whether you're just experimenting with MCP or you've been at it for a while, um, really the extensions are, are endless.

47:31 Um, I think I love the practical examples. I think a lot of us work in, uh, you know, a business environment and, you know, just, just seeing what you were able to do to kind of circumvent some of, uh, Claude's limitations, I think, uh, I think for a lot of folks that's directly applicable. And, um, we have a few questions here. I will mention for anybody who's just getting started with MCP, uh, or interested and hasn't, hasn't used it at all, uh, I'll put a link in the, in the, the comments.

47:59 There, there's a, I guess it's a plug for another TUG. The Data Dev TUG, they have, uh, challenges that they've worked on and there's, they come with solutions. So anybody who's looking to just kind of dabble or curious, I'll put that in there. It's a great starting point for anybody, uh, who wants to get started. So let's see, Louis, we've got a couple of questions here.

48:18 Um, Olga asked a very, you know, I'm sure a lot of folks, uh, think about this as well. And she says, "Does it worth, worth from a tokens consumption point of view?" You know, how-

48:28 Louis Yu: So what I've, uh, what I've seen from my consumption habits, or rather what, what I consume in, uh, building the whole demo for this was like less than 20 bucks.

48:42 So as long as you use the right model. So for the most cases, you don't need Opus, you don't need Fable for this. Uh, Sonnet is fine, is good enough, uh, because essentially it is… You're not solving a complex problem, right?

48:57 You're just routing Tableau MCP to retrieve the right API for your calls. Uh, now, if you want to build like a, a full-fledged web app with, uh, specific use cases of API, maybe use Opus or Fable to do the planning and then use Sonnet to do the coding itself, right? Don't ever use Cl- Fable opts to do coding because it's too expensive and it's not worth the price.

49:24 Joshua Vijeh: Yeah, great advice.

49:26 If there's anybody else who has any questions, feel free to put those in the chat as well.

49:30 Um, and Celia and Eric, if there's anything you want to add, uh, feel free to jump in a- as well.

49:38 Celia Fryar: I really appreciate what he was recommending just there about using the higher level models to basically charge the other models to go do that, that build or that work. I, I took me a while to learn that that was possible, but that's been a game changer on my end.

49:55 Eric Lacey: Yeah, that's really good, Louis. Very, very, uh, informative. I've actually used the MCP, uh, Tableau, um, and it's, it's very, very powerful at least, you know, for being able to get at data and combine it in with a specific, um, chat.

50:13 So combining the data, you know, for example, course schedules, right? And, you know, how, how, how, how to actually leverage that data into some other process. So the MCP really where rather than me having to go look it up in Tableau and then turn around and use it elsewhere.

50:32 Louis Yu: Yeah, this is a great point because I think traditionally what people do is that they go into Tableau, they download the data source, or they download the workbook, they play around with Tableau Desktop to get the slice they want, they export it, and yeah, it's just too much hassle. I mean, we live in a AI-powered world. Doesn't mean that AI has to replace all workflows, but you can find ways that you can use AI to kind of, uh, quicken, you know, things that you don't want to do.

51:01 Eric Lacey: Right.

51:02 Joshua Vijeh: Yeah, I agree, Louis. I, I'm totally anything I can do to take those, uh, repetitive tasks off my plate, those are perfect for, for Claude and MCP.

51:15 Louis Yu: So I think Priestly also has a question on…

51:19 I'm assuming HCI means highly confidential information, or like what, what does HCI means?

51:26 Joshua Vijeh: Yeah. It's, it's, uh, um, highly confidential data.

51:31 Louis Yu: Okay. So n- no matter what, Claude is a cloud environment.

51:37 Uh, so I would, I would, uh…

51:44 I mean, if you have an enterprise plan, uh, they do, they do state that, you know, your data is not trained and stuff like that, but you have to clear, you know, your security clearance and stuff like that. Like even within internally, uh, we deal with a lot of player data as well, player identifiable data. Uh, and we did have to have a lot of, uh, IT clearance just to make sure that we can use Claude to process any of the information.

52:13 So, uh, that has to be, you know, treated with extreme caution as well, right?

52:20 Joshua Vijeh: Okay. Got it. Thanks.

52:23 Okay.

52:25 Well, it looks like, uh, no further questions at this time. So Louis, I just wanna, yeah, thank you again for joining us. Um, I think really informative. I think I know for myself, uh, it's given me a lot of ideas, and I can say the same from some of the comments here. So, uh, I'll definitely be looking at the recording and for those, uh, who are here able to join, we'll put the recording out, and for anybody who wasn't able to join, uh, obviously we'll, we'll be doing the same.

52:51 Uh, before we go, uh, Celia, um, and Eric, I'll, I'll open it up to you as well if there's anything else you wanna add.

52:59 Um-

52:59 Celia Fryar: I just wanna add my thanks to, um, Louis, and then quick one more plug to please consider joining us for the Data viz competition, uh, that we're hosting out of Austin in the res- during the in the por- in porn this month.

53:16 Mm.

53:17 That's all from my side. Thank you.

53:19 Louis Yu: Thank you everyone for having me.

53:20 Eric Lacey: Big, big… Yeah, big thank you to Louis, uh, and, and to all those who joined. I really appreciate it.

53:26 Joshua Vijeh: Excellent.

53:26 Eric Lacey: And Joshua, for you emceeing. Thank you.

53:30 Joshua Vijeh: Not a problem at all. This was a lot of fun.

53:34 All right. Well, wonderful. Thanks again for everybody joining. And, uh, Louis, again, thanks. Uh, we really appreciate it. And, uh, we'll put out a, uh, announcement once, uh, the September link is available for the upcoming session with, uh, uh, with Michael McCuister. And, um, yeah, thanks again.

53:52 Eric Lacey: All right. Thanks everybody.

53:52 Joshua Vijeh: Everybody have a wonderful rest of the day.

53:54 Louis Yu: Thank you.

53:56 Celia Fryar: Thanks very much, Josh, and thank you, Louis.

53:59 All right.

54:00 Louis Yu: Thanks.

54:00 Celia Fryar: See you soon.

54:02 Louis Yu: All right. Se-

Shorts for this TUG